strcat拼接两个字符指针后,释放内存崩溃问题
2016-03-04 11:47
225 查看
在实际开放中,我们可能会用到strcat拼接两个字符串,例如
char a[6] = "hello";
char b[6] = "world";
strcat(a,b);
free(a);
free(b);
此时会出现越界情况,由于a只有6个字符的空间,拼接后超出了本身空间大小,因此会报错,
所以需要用realloc重新给a分配足够的空间来存储新的字符串。
在使用指针时,需要时刻注意空间的分配,空间的大小,空间的释放等问题
char a[6] = "hello";
char b[6] = "world";
strcat(a,b);
free(a);
free(b);
此时会出现越界情况,由于a只有6个字符的空间,拼接后超出了本身空间大小,因此会报错,
所以需要用realloc重新给a分配足够的空间来存储新的字符串。
在使用指针时,需要时刻注意空间的分配,空间的大小,空间的释放等问题
相关文章推荐
- 关于指针的一些事情
- IE7降低内存和降低CPU的几个技巧
- 如何高效的使用内存
- DOS下内存的配置
- XP/win2003下发现1G的内存比512M还慢的解决方法
- PowerShell实现动态获取当前脚本运行时消耗的内存
- C#实现把dgv里的数据完整的复制到一张内存表的方法
- SQL语句实现查询SQL Server内存使用状况
- C# Pointer指针应用实例简述
- C语言内存对齐实例详解
- C++智能指针实例详解
- 深入学习C语言中memset()函数的用法
- C++指向函数的指针实例解析
- 关于c语言指针的两处小tip分享
- 浅析iterator与指针的区别
- 探讨C++中数组名与指针的用法比较分析
- C++编程指向成员的指针以及this指针的基本使用指南
- 详解C++中的指针、数组指针与函数指针
- C++中字符串以及数组和指针的互相使用讲解
- C语言安全之数组长度与指针实例解析