C语言学习过程中对于strcat函数使用的一点认识

 这几天放假,我把C的有些东西稍微看了一下,上机调试某些不是很熟悉的函数。期间发现有关strcat的一个小问题,也算是个经验吧。

《C程序设计》上都说过,strcat(str1,str2);中的str1应该足够大才行。我的例程如下:

 

 

#include <stdio.h>
void main()
{ char t='0',d[21]={"So just do it!"},c[39]={"Nothing can be done,if you don't move!"};
  puts(d);
  putchar('/n');
  puts(c);
  putchar('/n');
  strcat(c,d);
  puts(c);
  printf("Press any key to continue/n");
  t=getchar();
}

 

 

很明显,字符串数组c是比较短的。我起初以为这是书上的一个小毛病,后来发短信询问学计算机的同学,他跟我讲TC就是这么设计的。我这么做的结果实际是把第一个字符串后的某段空间给更改了,且其正好不是只读的,这样实际是有危险性的。
后来自己想想也是那么回事,书上也没错,只是TC当初应该在这种问题上提示一下。虽然高手们不会犯这种错误,但像我这种菜鸟,得这么一下才能深入的了解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值