在分配的空函数之外的空闲内存

use*_*244 3 c malloc pointers

我有一个无效功能

void foo(int *ptr) {
   //trying to allocate memory to hold 5 ints
   ptr = malloc(sizeof(int)*5):
   //I loop ptr and assign each with a value i =0 to 4;
}
Run Code Online (Sandbox Code Playgroud)

在主要功能我有这条线

int main() {
    int *num;
    //I called the function 
    foo(&(num));
    free(num);

   return 1;
}
Run Code Online (Sandbox Code Playgroud)

我得到munmap_chunk()无效的指针错误.我确实试图挖掘更多信息,但我无法弄清楚这一点.我知道这对那些在c工作的人来说是基本的.我以为我通过引用传递它应该工作,但事实并非如此.我是C的新手,到目前为止一直很头疼.

Dav*_*eri 7

ptr是一个局部变量,生前与函数结束时,你需要一个指针,以改变为指针nummain

   void foo(int **ptr) {
       //trying to allocate memory to hold 5 ints
       *ptr = malloc(sizeof(int)*5);
       //I look ptr and assign each with a value i =0 to 5;
   }
Run Code Online (Sandbox Code Playgroud)