标题:c++ 的operator new 的问题
取消只看楼主
guiru8889
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-20
 问题点数:0 回复次数:1 
c++ 的operator new 的问题
我在linux下用c++邦定gtk进行图形界面开发,我发现了一个问题:
在我的程序中有这么一条命令:
char *text=new char[20];
我用gdb调试:这条语句之后用 print strlen(text)
竟然显示的是19,用print text 命令 显示的是一些别的字符,导致我无法进行strcat()操作,
我在另外一个小程序中专门检验了一次,我发现在小程序中,字符串分配完毕后长度是0,这才是正常的。
为什么在我的大程序中反而不对呢?
在new的分配操作时也没有显示错误,然后我用text[0]='\0';就可以进行strcat()操作了。
我想知道这是怎么回事,谢谢!
搜索更多相关主题的帖子: operator new 
2006-03-20 17:09
guiru8889
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-20
得分:0 

所谓的print,用过GDB的人都应该知道,它是用来在调试程序时输出变量的工具,我在单步调试时,想知道哪个变量运行到现在的值是什么,就可以用这个语句。
难道,C++分配好的字符串空间还用初始化?我好像没听说过。

2006-03-21 15:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-51626-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.421019 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved