为什么在这个简单的例子中传递一个简单的指针不起作用

Pio*_*era -1 c pointers void-pointers

为什么修改ptr对vector没有影响?我试图通过f函数改变值.

void f(int *ptr, int size, int value){
    ptr=(int* )malloc(sizeof(int));
    if(ptr!=NULL){
        int i;
        for(i=0;i<size;i++)
            *(ptr + i) = value;
        }

}

int main (void)
{
  int *vector = NULL;
  f(&vector, 3, 324);
    printf("%p\n", vector);

}
Run Code Online (Sandbox Code Playgroud)

Mat*_*ser 5

您将结果分配给malloc参数ptr,即本地参数.你应该把它分配到什么ptr .

void f(int **ptr, int size, int value)
{
  *ptr = (int*)malloc(sizeof(int) * size);
  // Rest of code
}
Run Code Online (Sandbox Code Playgroud)