静态存储区,栈 堆 的区别?为什么我的程序不报错?
http://www.360doc.com/content/10/0807/12/2597709_44296354.shtml
看到网络上转载了很多 “静态存储区,栈 堆 的区别?”的文章,见上。
我在VC6.0上试验了一把,发现程序没有报错?奇怪了,为什么不报错呢?
// Testaaa.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
char *f1()
{
char* p = NULL;
char a;
p = &a;
return p;
}
int main(int argc, char* argv[])
{
char *p = NULL;
p = f1();
*p='d';
return 0;
}
文章说a是的存储空间是临时的,使用f1()后,系统会自动删除,而*p='d'将会报错,因为没有了这段空间而操作这段空间,所以会报错。但是我的程序没有报错,为什么会这样?请教大虾们。
c++ 新手,提出的问题比较基础...