分类: C/C++
2012-05-19 10:08:36
点击(此处)折叠或打开
点击(此处)折叠或打开
licong05272012-05-19 16:50:26
licong05272012-05-19 16:47:48
qizheguang2012-05-19 13:23:32
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。
p申请了新的内存,只是把p所指的内存地址改变了,但是p 丝毫未变。所以函数get_memory并不能输出任何东西。事实上,每执行一次get_memory就会泄露一块内存,因为没有用
free 释放内存。
这里提示楼主一个错误:
void get_memory(char **p)
{
p = (char *)malloc(sizeof(char) * 100);
}
改成
*p = (char *)malloc(sizeof(char) * 100);
p在这里是不是要改成*p呢
建议看下林锐的高质量C编程.....
要实现这个其实有比指针的指针更好的方法