读书人

奇怪的有关问题 高人出手

发布时间: 2013-04-21 21:18:07 作者: rapoo

奇怪的问题 高人出手


char *p=(char*)malloc(20);
free(p);
strcpy(p,"23 ");
cout<<p;
//printf(p);

用cout没问题 但用printf 会有乱码或崩溃等问题
调试来看 也是正常在终端打出了内容
但过了这个语句之后就变成未初始化的字符了
[解决办法]
不同的编译器或同一个的不同版本也可能出现不一致的结果
这里指针的位置诚然是没变的,对于不同编译器来说,可能是释放机制不同导致的
这里不同函数的处理也许是内部对释放标记的指针处理不同,函数内部实现不必深究

读书人网 >C++

热点推荐