【发布时间】:2013-04-28 21:55:59
【问题描述】:
我对以下代码崩溃的原因有些困惑:
int main(){
int *a;
int *b;
*a = -2;
*b = 5; //This line causes a crash on my system.
return 0;
}
由于声明,不应该在运行前自动为两个指针和两个整数分配内存吗?
还是必须始终显式分配内存?
【问题讨论】:
-
"不应该自动分配内存" -- 你从哪里得到这样的想法?这肯定是假的。应该为可以指向任意长数组
int的指针分配多少内存? -
@Code-Guru:我会强调之前而不是必须。 ;-)
-
@PieterGeerkens 好点(呃)
-
在大多数系统上,第一行也会崩溃......而且它在你的系统上也很可能发生。
-
不要在黑暗中拍摄。买一本关于 C 的书。
标签: c memory-management