char *a=(char*)malloc(999);
char temp[10];
...//中间就算是给temp赋值
strcat(a,temp);
我用的是vc2010,这里为什么每次都会有breakpoint跳出来 说有unhandled exception啊??然后会打开一个strcat.asm的文件,在“ mov [edi],dl”这里有个breakpoint。
在线求助啊急!!!求高手指点!!谢谢!!!
我换了10000了。。也不行。。
追答你在char *a=(char*)malloc(999);加个断点,跟进去看看,这些变量里面到底是什么。就知道问题在哪了。
断点会加吗? 就把光标移动到char *a=(char*)malloc(999);,按F9,然后运行,接着按F10,一步一步的看。
请问应该怎么改啊。。。我不太会
追答能全贴出来么代码
追问全代码太长了 但是中间对temp处理过的只有这一句:
sprintf( temp, "(%d, %.2f, %.2f, %.2f, ->) ", previous->yMax, previous->x, previous->deltaX, previous->deltaY );
这之前有temp的就是对它的定义,这之后就是strcat那句了。
从这句看
sprintf( temp, "(%d, %.2f, %.2f, %.2f, ->) ", previous->yMax, previous->x, previous->deltaX, previous->deltaY );
temp果断溢出了··
那是还要再大是么。。。。
追答肯定了
假设你的 "(%d, %.2f, %.2f, %.2f, ->) ", previous->yMax, previous->x, previous->deltaX, previous->deltaY
( 一个长度 然后一个int的 至少得 1个长度 然后逗号 一个长度 1+1+1 = 3 至少3
接着float的还是.2 至少3个长度 逗号一个长度 4
接着float的还是.2 至少3个长度 逗号一个长度 4
接着float的还是.2 至少3个长度 逗号一个长度 4
后面的 ->) 3个长度 3
那么加起来 至少也有 18长度了 你temp定义的是10 你自己算算
pascal决赛求助!!高手快进...
strlcopy 函数 将一个字符串中的字符复制到另一个字符串中 strlen 函数 返回字符串中的字符数 strlfmt 函数 格式化一系列的参数,其结果中包含有指向目标缓冲区的指针 strlicomp 函数 以最大长度比较两个字符串(不区分大小写) strlower 函数 将字符串中的字符转换为小写 strmove 函数 将一个字符串中的字符复制...