⑴ c語言中定義一維數組
您這樣進行定義是錯誤的。
因為在棧上進行數據定義時,必須編譯的時候就能夠確定該數據的確切大小。
int b[]; //必須填值
int a[strlen(b)]={0}; //中括弧內容的值必須是常數。
如果您需要動態大小的數組,那麼應該使用malloc進行動態內存申請,並在使用後用free進行釋放。
⑵ c語言中可不可以用變數定義數組的個數;
c語言中不可以用變數定義數組的個數。
可以使用mallo函數
mallo函數返回的實際是一個無類型指針,必須在其前面加上指針類型強制轉換才可以使用;
指針自身=(指針類型*)malloc(sizeof(指針類型)*數據數量);
int*p=NULL;
intn=10;
p=(int*)malloc(sizeof(int)*n);
(2)c語言定義數組擴展閱讀
mallo函數使用注意事項
調用malloc函數時,它沿連接表尋找一個大到足以滿足用戶請求所需要的內存塊。然後,將該內存塊一分為二(一塊的大小與用戶請求的大小相等,另一塊的大小就是剩下的位元組)。接下來,將分配給用戶的那塊內存傳給用戶,並將剩下的那塊(如果有的話)返回到連接表上。
調用free函數時,它將用戶釋放的內存塊連接到空閑鏈上。到最後,空閑鏈會被切成很多的小內存片段,如果這時用戶申請一個大的內存片段,那麼空閑鏈上可能沒有可以滿足用戶要求的片段了。
⑶ c語言中如何給數組定義並賦初值
字元串數組定義賦值:
char c[6]={'c', ' h ', 'i', 'n', 'a' , '