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)
您将结果分配给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)