2013-10-15 23 views
-3

我正在編寫的程序的一部分需要使用malloc創建數組,而不是使用常規方式創建它。我必須讓用戶輸入一個數字,爲​​該數字指定名稱MAX,然後使用帶有數字2的malloc()創建一個數組,通過輸入的數字。我將如何去編碼這個?如何使用C中的malloc()創建一定大小的數組?

+1

從一本好書開始。 – Rohan

+0

那種在早上1時在朋友家裏很難做的事情...... – user2313123

+0

這就是爲什麼我會潛入Interweb。 –

回答

2

通過指定數組的大小(以字節爲單位)並將返回值分配給相應類型的指針,您可以創建一個帶有malloc()的「數組」。如果您打算將其設置爲大於一個字節的對象數組,則可以將對象數乘以對象大小,這可以使用運算符sizeof獲得。

例如,你可以像這樣創建50個int對象的 「數組」:

int *ar = malloc(50 * sizeof (int)); 
+0

謝謝!這就是我需要知道的。 – user2313123

+0

當我這樣做時,我得到一個錯誤說:預期聲明或輸入末尾語句 int * ar = malloc(50 * sizeof(int)); – user2313123

+0

如果您使用的是足夠舊的C編譯器,例如Microsoft Visual Studio,它將不支持混合的語句和聲明。把'int * ar = NULL;'放在函數的開頭,並且在你需要分配的地方放上'ar = malloc(whatever);'。當然,一定要用適當的值代替「無論」。 –

0

你可以做到這一點:

T *dynamic_memory; 
....... //Get the desired array size from user input and store in 'array_max_size' 
dynamic_memory=malloc((sizeof(T) * array_max_size); 

T:數組的數據類型

然後,您可以使用dynamic_memory爲您的目的。

相關問題