我們假設我有一個要保存1000字節的char變量。如何正確使用malloc?
char var[1000];
我該如何使用malloc來分配那麼多內存?
我試過上的malloc閱讀了,但即使ķ& [R似乎並沒有對它有很多信息。
我們假設我有一個要保存1000字節的char變量。如何正確使用malloc?
char var[1000];
我該如何使用malloc來分配那麼多內存?
我試過上的malloc閱讀了,但即使ķ& [R似乎並沒有對它有很多信息。
應該有幾百萬的解釋使用malloc
頁,我懷疑你做了很多的搜索。但這裏是你怎麼稱呼它:
char *var = malloc(sizeof(char) * 1000);
對於其他類型的,只是改變它:
int *int_var = malloc(sizeof(int) * 1000);
編輯請記住,你必須使用後釋放所分配的內存!或者你會有內存泄漏。
free(var);
free(int_var);
不要施放'malloc'的返回指針 – Constantinius
@Constantinius好的,回答編輯。 –
var = malloc(sizeof * var * 1000)通常優於malloc(sizeof(char)* 1000) –
http://www.manpagez.com/man/3/malloc/
char *pVar = malloc(1000);
.... use pVar ....
free(pVar);
// DONT use pVar anymore
如果你已經聲明瞭變量char var[1000];
你已經靜態分配的內存量。你不需要爲此調用malloc
。
如果要使用動態分配和您的變量聲明如下:char *var;
可以按如下分配內存:
var = malloc(1000);
也不要忘記釋放你分配的內存時,即可大功告成與它:
free(var);
你不想使用malloc這個變量,因爲它已經分配的,但你可以通過使用
達到類似的結果char *var = malloc(sizeof(char[1000]));
// do stuff
free(var);
如果你有char var[1000]
你不需要malloc這個定義會爲你的var
分配1000*sizeof(char)
所以你可以做var [999] ='x';
爲什麼downvote? – dikidera
「K&R似乎並沒有對它有太多的信息」 - 看起來你已經閱讀不同的書籍:) – codaddict
你認爲[這個問題](http://stackoverflow.com/questions/1119134/how-do- malloc-free-work)? – moooeeeep