typedef struct dog{
int weight;
}dog
dog dog1;
dog1.weight =2;這個 dog1是在堆疊中吧, 一般情況下我們都會像下面這么使用結構體
dog * dog2 = (dog * ) malloc(sizeof(dog));
dog2就指向堆中的結構體了。
那dog1上面那種,一般在什么情況下使用呢?
uj5u.com熱心網友回復:

我能想到的。
1.考慮占用空間。如果申請的物件占用記憶體過大。那么你比如堆疊里定義char a[999999]; 這個肯定會運行崩潰的。
2.考慮物件的運行生存期。如果想生存期特別長,就用堆記憶體。
uj5u.com熱心網友回復:
1占用記憶體不大,2使用完后由堆疊自動釋放,這種情況下可以用dog1uj5u.com熱心網友回復:
區域變數 和 函式的實參都是堆疊物件動態分配的都是堆物件
還用全域變數和靜態變數區呢

大概的位置關系如上圖
動態記憶體是可以開的很大, 但是什么都是不是無限的, 在任何現存系統上都有物理限制
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130091.html
標籤:C語言
下一篇:來幫下編程小白
