char字符无法连接?
时间:2008-06-20 13:46:27
来源:论坛整理 作者: 编辑:chinaitzhe
inf.open("20080201100830.dat"); //dat是二进制文件,内容:aa 55 2d 3f...
char ss7Temp[3]={0};
char *ss7;
for(int i=0;i <1000;i )
{
inf.read((char*)&ss7Temp,1);
sprintf(ss7Temp1,"x", (*((char*)&ss7Temp))&0xff);
strcat(ss7,ss7Temp1); //报错
}
为什么无法连字符串?
网友回复:给ss7 分配内存。
ss7 = (char*)malloc(size);
网友回复:
- C/C code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ char *ss7; ... strcat(ss7,ss7Temp1); //当然会错啦!注重悬垂指针!指针没有初始化! char* ss7=(char *) malloc(sizeof(char)*10);// 开辟10个char的大小空间
网友回复:ifstream inf;
inf.open("20080201100830.dat"); //dat是二进制文件,内容:aa 55 2d 3f...
char ss7Temp[3]={0};
char *ss7 = new char[20480];
for(int i=0;i <1000;i )
{
inf.read((char*)&ss7Temp,1);
sprintf(ss7Temp1,"x", (*((char*)&ss7Temp))&0xff);
strcat(ss7,ss7Temp1); //报错
}
delete [] ss7;
这样试试(我也刚学)
网友回复:ifstream inf;
inf.open("20080201100830.dat"); //dat是二进制文件,内容:aa 55 2d 3f...
char ss7Temp[3]={0};
char *ss7;
ss7 = (char*)malloc(500);
for(int i=0;i <1000;i )
{
inf.read((char*)&ss7Temp,1);
sprintf(ss7Temp1,"x", (*((char*)&ss7Temp))&0xff);
strcat(ss7,ss7Temp1); //报错
}
free(ss7);
程序执行后在free处报错, //用的C++builder RichEdit 显示
显示出来的结果:
dgaa550701f1a679fb1b
aa前面的乱码如何去掉?
网友回复:注重分配内存。。。。。
网友回复:ss7没有分配空间,是野指针
- C/C code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ char* ss7 = (char*)malloc(足够大的空间); 就可以了
网友回复:for循环为什么不改成 if(!inf.eof())
还有你此例的循环里ss7Temp最好是现设置为0然后再读取
网友回复:
分配完内存后要初始化一下,
例如:
ss7[0]='\0';
关键字:char,字符,无法,连接,
上一篇:二进制文件读取字节比较问题?
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面