首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

奇怪的有关问题 高人出手

2013-04-21 
奇怪的问题 高人出手char *p(char*)malloc(20)free(p)strcpy(p,23 )coutp//printf(p) 用cout没

奇怪的问题 高人出手


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

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

热点排行