应该以下代码运行后是pc_tmp填入9个空格吧??
但是实际情况却有些古怪,如上面的注释
char * pc_tmp1;
i_len=9;
pc_tmp1=new char[i_len]; //我在调试态,看到pc_tmp中分配了远超过9个字符长度的空间,里面是乱字符
using namespace std;
string tt(pc_tmp1);
int ttt=tt.length() ; //这段纯粹了是为了检验我是不是分配了9个长度,结果有时ttt=25,有时却又成了 17,实在是古怪
for (int i=0;i<i_len;i++)
pc_tmp1[i]=' ';
循环完了之后,pc_tmp中是前面9个空格,然后后面一片乱字符.
实在是想破脑袋也没想出是为什么来??大侠们救个急了
但是实际情况却有些古怪,如上面的注释
char * pc_tmp1;
i_len=9;
pc_tmp1=new char[i_len]; //我在调试态,看到pc_tmp中分配了远超过9个字符长度的空间,里面是乱字符
using namespace std;
string tt(pc_tmp1);
int ttt=tt.length() ; //这段纯粹了是为了检验我是不是分配了9个长度,结果有时ttt=25,有时却又成了 17,实在是古怪
for (int i=0;i<i_len;i++)
pc_tmp1[i]=' ';
循环完了之后,pc_tmp中是前面9个空格,然后后面一片乱字符.
实在是想破脑袋也没想出是为什么来??大侠们救个急了
解决方案 »
- 关于书中mysnmp.lib无法使用
- 如何实现点阵读取Richedit里面的文本内容?
- 利用List Control控件删除数据后不自动失去焦点
- 用CCriticalSection锁定代码问题
- GotoDlgCtrl(GetDlgItem(ID))和GetDlgItem(ID)->SetFocus()一样吗?
- win32下位图拷贝问题,郁闷了大半天了,请高手指点
- 请问什么时运行时??
- dll里申明的对象,在外面能释放吗?
- 如果想把List Control控件中的内容以表格形式打印出来,该如何写成员函数
- 卖程序啦 能浏览查看非常巨大位图的工具。
- .plg文件总是被修改,请教大侠!在线等!
- 请教一个关于api的问题
char * pc_tmp1;
i_len=10;
pc_tmp1=new char[i_len];
pc_tmpl[9] = '\0';
memset(pc_temp1,0,i_len*sizeof(char));
....
所以一般对char类型的new,大都应当初始化,这是基本的习惯。
如
ZeroMemory(pc_tmpl. i_len);