| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 651 人关注过本帖
标题:c++ 的operator new 的问题
只看楼主 加入收藏
guiru8889
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-20
收藏
 问题点数:0 回复次数:3 
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
zinking
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:35
帖 子:916
专家分:0
注 册:2004-12-5
收藏
得分:0 

什么是print啊!
 最好是在分配好了空间之后给其初始化

可能是这方面出的问题


http://kongfuziandlife. http://codeanddesign.
2006-03-20 22:39
lzb198598
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-3-20
收藏
得分:0 
先定义,后赋值吧

为软考而奋斗!
2006-03-21 13:58
guiru8889
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-3-20
收藏
得分:0 

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

2006-03-21 15:04
快速回复:c++ 的operator new 的问题
数据加载中...
 
   



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

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