C-指针参数不能直接malloc

函数的指针参数不能直接使用malloc,直接malloc指针还是NULL。

举例:

void test_func(char *p, int num)

{

  p=(char *)malloc(num);

}

当调用test_func给p分配内存时就会失败,因为编译器会为每个函数的每个参数创建副本,实际上是副本_p=malloc(num),然后编译器又使_p=p,这样_p和p都=NULL了。。。

posted @ 2023-01-30 21:53  科学修行的红客  阅读(47)  评论(0编辑  收藏  举报