所以我正在研究內存分配,它說你只能使用malloc()動態分配內存;但是這不是動態內存分配嗎?它工作btw.So我有點困惑。這個數組是靜態的還是動態的?
#include<stdio.h>
#include<conio.h>
int main()
{
int integer,cntr;
scanf("%d",&integer);
char words[integer];
for(cntr = 0;cntr < integer - 1;cntr++)
words[cntr] = 'k';
words[cntr] = '\0';
printf("%s",words);
getch();
return(0);
}
等待我困惑,所以它的動態?但@ jack/*下面的註釋* /因爲它被分配在堆棧而不是堆中,它仍然被認爲是靜態的。我認爲動態的定義是如果內存將在運行時分配 – latenightcode
嗯,我的意思是大小是動態的,並在運行時確定。當你的線程被創建時,堆棧仍然是一個靜態的內存塊,分配給一個有限的大小。 –
那麼即使大小是動態的,並且在運行時確定,只要將其分配在堆棧中而不是堆中,它仍然是靜態的呢?以防萬一它出現在測試中 – latenightcode