2011-12-16 107 views

回答

4

創建無固定尺寸的陣列的唯一方法是通過使用malloc,它接受要分配的存儲器的尺寸(以字節爲單位)。然後您將使用它作爲char*,它也可以容納數組語法。 不要忘記測試返回值是非零(這是方式malloc表明你是內存不足)。

您所使用的內存完成後,你則負責與free其釋放回系統。

例如:

size_t size = 42; // you can read this from user input or any other source 
char* str = malloc(size); 

if (str == 0) { 
    printf("Insufficient memory available\n"); 
} 
else { 
    // Use the memory and then... 
    free(str); 
} 
+0

**電話**不要從`malloc`將返回值。在C語言中,最好是冗餘的,並且可能隱藏編譯器在沒有投射的情況下會捕獲的錯誤。 – pmg 2011-12-16 23:09:41

+0

@pmg你可以舉一個例子,其中編譯器隱藏了一個實際的錯誤信息。我試圖製作一個,但失敗了。 – Mahesh 2011-12-16 23:11:20

3

查找的mallocrealloc的功能。

我假定非固定尺寸是指動態分配的數組 - 其可以使用malloc獲得。