[英]int A[n] is allocated on STACK or on HEAP?
如果執行以下行:
void dummy () {
int n;
scanf ("%d", &n);
int A[n];
}
陣列A將分配在STACK還是HEAP上?
這應該是C還是C ++問題?
請注意,在C ++中,數組聲明在形式上是非法的。 在數組聲明中使用非常量表達式指定數組大小是非法的。
假設您的C ++編譯器支持此聲明(從C語言中借用此功能),則A
是本地數組對象。 它的分配方式與聲明沒有鏈接的任何其他本地對象的方式相同,即具有自動存儲持續時間(在您的術語中為“ on stack”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.