C++中strcat的简单问题!!在线求助!

char*a=(char*)malloc(999);chartemp[10];...//中间就算是给temp赋值strcat(a,temp);我用的是vc2010,这里为... char *a=(char*)malloc(999);
char temp[10];
...//中间就算是给temp赋值

strcat(a,temp);
我用的是vc2010,这里为什么每次都会有breakpoint跳出来 说有unhandled exception啊??然后会打开一个strcat.asm的文件,在“ mov [edi],dl”这里有个breakpoint。

在线求助啊急!!!求高手指点!!谢谢!!!
展开
 我来答
hekailing1990
2013-03-18 · TA获得超过270个赞
知道小有建树答主
回答量:130
采纳率:0%
帮助的人:161万
展开全部
你没有把a没有初始化,或者你初始化的字符串最后一个不是空字符,或者你的temp赋值不是以空字符结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
周生008
2013-03-18 · TA获得超过1222个赞
知道小有建树答主
回答量:1329
采纳率:0%
帮助的人:636万
展开全部
使用strcat之前加上下面这句
memset(a, 0, 999);
另外,你需要判断a的空闲内存是否够用
if ( 999 - strlen(a) > strlen(temp))
{
strcat(a, temp);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lostknight
2013-03-20
知道答主
回答量:15
采纳率:0%
帮助的人:4.6万
展开全部
很多回答纯粹胡说

char temp[10] = {0} 就行了

temp没有初始化导致没有结束导致溢出。
楼主不要被别人误导
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自月岩仪态万千的比目鱼
2013-03-18 · TA获得超过1571个赞
知道小有建树答主
回答量:1221
采纳率:50%
帮助的人:952万
展开全部
会不会temp定义的短了?定义的长点试试
追问
我换了10000了。。也不行。。
追答
你在char *a=(char*)malloc(999);加个断点,跟进去看看,这些变量里面到底是什么。就知道问题在哪了。
断点会加吗? 就把光标移动到char *a=(char*)malloc(999);,按F9,然后运行,接着按F10,一步一步的看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海雄风2009
2013-03-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8525
采纳率:79%
帮助的人:2722万
展开全部
溢出了啊 亲
更多追问追答
追问
请问应该怎么改啊。。。我不太会
追答
能全贴出来么代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式