我有在C.全局變量的一個問題我要創建與C字符串字符串的數量將通過由殼傳遞的參數來確定的陣列(number_of_string = atoi(argv[1])
) 。所以我認爲最好的方法是使用一組number_of_strings
指針。這個數組中的每一個元素都將指向一段由malloc預留的內存。主要的問題是我需要在執行main(argv [1]還沒有存在)之前定義數組的大小,作爲一個全局變量。我不知道如何解決這個問題。誰能幫我?聲明從殼全局CHAR陣列用C
0
A
回答
0
這是否解決問題了嗎?
#include <stdlib.h>
char **strings;
int main(int argc, char **argv)
{
int size;
int i;
if (argc < 2)
return 1;
size = atoi(argv[1]);
if (size <= 0)
return 2;
strings = malloc(sizeof(char*)*size);
for (i = 0 ; i < size ; i++) {
strings[i] = malloc(sizeof(char)*100);
}
// You now have argv[1] 100-byte strings (don't forget about NULL terminators)
}
+0
謝謝。問題解決了!。 – HastatusXXI
+0
不要忘了釋放他們。 – WPomier
相關問題
- 1. 故障聲明串的全局陣列在C
- 2. 聲明和使用全局數組c#
- 3. PHP全局聲明
- 4. 在C中聲明全局工會
- 5. 類/全局函數聲明C++
- 6. 如何聲明python全局列表
- 7. Python和全局聲明
- 8. 全局變量聲明
- 9. 聲明全局表格
- 10. 聲明全局uiimages的NSMutablearray
- 11. 乳膠全局聲明
- 12. IBOutlet陣列聲明
- 13. PHP陣列聲明
- 14. 聲明char [] [512]?
- 15. C++陣列大小的聲明和const
- 16. Javascript數組不全空聲明全局
- 17. 如何獲取使用Clang的C/C++程序的全局聲明列表?
- 18. 無法用TypeScript聲明全局變量
- 19. 當聲明char陣列時緩衝區溢出
- 20. 陣列中C結構的陣列 - 聲明
- 21. C++二維char列陣
- 22. Char陣列輸出 - C++
- 23. 用C共享全局變量typedef定義重新聲明
- 24. 從超全局刪除陣列($ _GET,$ _ POST ...)
- 25. 解釋外殼聲明
- 26. 前向聲明和全局名稱空間聲明
- 27. 如何在全局數組聲明中聲明sysconf返回值?
- 28. 在全局頭文件中聲明一個全局變量?
- 29. Python類正在更改全局變量而未聲明全局
- 30. 在ActionScript中聲明全局變量?
爲什麼在執行之前需要定義數組的大小?從邏輯的角度來看,如果在運行時只知道字符串的數量,那麼該如何發生呢?定義指針並使用'malloc'來分配字符串指針。 – Downvoter
'char ** strings'。 '字符串= malloc的(的sizeof(字符*)*的atoi(argv的[1]));每個''串[X]'然後的malloc'的結果(的sizeof(char)的*);'。如果出於任何原因,你希望它是全局的,只需要在全局定義'char ** strings'。然後按照前面在'main()'中說明的或任何適當的地方初始化它。 –
eddiem
這是一個併發練習。我必須創建一個循環緩衝區,我將存儲由用戶確定的一些字符串(通過shell傳遞數字)。這是完成程序缺少的部分。 – HastatusXXI