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

关于一个函数转化的有关问题,新手提问,多谢

2012-04-24 
关于一个函数转化的问题,新手提问,谢谢我这个转化函数有时候可以,有时候又不行,出现stack around the vari

关于一个函数转化的问题,新手提问,谢谢
我这个转化函数有时候可以,有时候又不行,出现stack around the variable was corrupted
我给charstring 传递 char *temp="sdfsdf"的时候,这样的,就可以,但是我传递(char *)(&structname),这个就不行
也就是我传递结构体转化char * 后,这个函数就运行不正常了

C/C++ code
char * charToHexString(char * charString,long charsize){   int charByte=charsize*2;   char * returnchar=new char[charByte];   memset(returnchar,0,2);   for(long i=0;i<charsize;i++){     char hexCode[3]={'\0'};     sprintf(hexCode,"%02X",charString[i]);      strcat(returnchar,hexcode);   return returnchar;   }}





[解决办法]
structname 这是什么东西?

return returnchar;
} 为什么for的结束部分在return后面?

int charByte=charsize*2;
char * returnchar=new char[charByte];
最后结束符 \0 的空间呢?
[解决办法]
无非是越界访问了。sprintf(hexCode,"%02X",charString[i]);看看这句吧
[解决办法]
char * returnchar=new char[charByte];改成
char * returnchar=new char[charByte + 1];

 memset(returnchar,0,2);改成
 memset(returnchar,0,charByte + 1);
再试试看看

你的return放的位置也不对,这样只能转换一次
[解决办法]
int charByte=charsize*2+1; 
char * returnchar=new char[charByte];

热点排行