-1

为什么修改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);

}
4

1 回答 1

5

您正在将 的结果分配给本地malloc参数ptr。您应该将其分配给ptr 指向.

void f(int **ptr, int size, int value)
{
  *ptr = (int*)malloc(sizeof(int) * size);
  // Rest of code
}
于 2013-06-05T19:46:52.313 回答