malloc 需要注意的事项
2015-06-04 16:33
267 查看
#include <stdio.h> #include <string.h> #include <stdlib.h> void getmemory(char *p) { p=(char *) malloc(100); strcpy(p,"hello world"); } int main() { char *str=NULL; // str=(char*)malloc(100); //应该在此处分配空间 getmemory(str); printf("%s\n",str); free(str); return 0; }
此段程序的目的是在main中定义一个char指针ptr,并将其传入getmemory函数中,传入后,希望分配空间并copy一个字符窜到str中,然后main函数将此字符串输出。
程序的问题在于,malloc在getmemory函数中分配,在这里分配的是为临时分配,当函数结束后分配的空间将无法找到,虽然没有释放掉内存,因此,运行时出现段错误。
相关文章推荐
- [stl] SGI STL的空间配置器
- python中__slots__用法实例
- ThinkPHP 3.2.3 数据表大小写问题(查询时候强制转换小写)解决办法
- 第十二周 课后实践:项目三——日期时间类
- POJ2296二分2sat
- 在Heroku平台上部署maven webapp(java web)项目
- Android Bitmap Compress 稳定版
- presentViewController: 如何不覆盖原先的 viewController界面
- Java正则表达式(转载http://www.java3z.com/cwbwebhome/article/article8/Regex/Java.Regex.Tutorial.html#reg6)
- 电子邮箱结尾总结
- iOS 动画效果
- GC机制总结
- 移植 MIUI Framework
- Sharepoint 对于是否签出文件进行编辑区别
- MVC之ActionResult
- android学习笔记(二)
- 重磅!详解阿里研究院互联网+报告
- TCP/IP-------MTU、MSS、分片
- HOJ1867 经理的烦恼
- 内存流操作