关于一个函数转化的有关问题,新手提问,多谢
关于一个函数转化的问题,新手提问,谢谢我这个转化函数有时候可以,有时候又不行,出现stack around the vari
关于一个函数转化的问题,新手提问,谢谢
我这个转化函数有时候可以,有时候又不行,出现stack around the variable was corrupted
我给charstring 传递 char *temp="sdfsdf"的时候,这样的,就可以,但是我传递(char *)(&structname),这个就不行
也就是我传递结构体转化char * 后,这个函数就运行不正常了
C/C++ codechar * 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];