在看下面的程序並不能確保內存的分配方式和原因:堆VS數據段VS堆棧分配
void function() {
char text1[] = "SomeText";
char* text2 = "Some Text";
char *text = (char*) malloc(strlen("Some Text") + 1);
}
在上面的代碼中,最後一個是明顯的堆。但是,據我瞭解,text2在程序的數據段中,而text1可能在堆棧中。或者我的假設是錯誤的?這裏有什麼正確的假設?這個編譯器是否依賴?
感謝
+1:非常符合問題 – Heisenbug 2011-06-01 16:57:15
您是否瞭解指針與它指向的數據之間的區別? – n0rd 2011-06-01 17:09:17
是的n0rd,但是這一個打擊我,因爲它似乎有這樣一個有多個可能的選擇.. – Kiran 2011-06-01 17:47:56