要修改已传递到C函数中的指针,需要使用指向指针的指针。这是一个简单的例子来说明如何修改已传递到C函数中的指针:
#include<stdio.h>
void modify_pointer(int **ptr) {
*ptr = (int *) malloc(sizeof(int));
**ptr = 42;
}
int main() {
int *ptr = NULL;
modify_pointer(&ptr);
printf("Value of *ptr: %d\n", *ptr);
free(ptr);
return 0;
}
在这个例子中,我们定义了一个名为modify_pointer
的函数,它接受一个指向指针的指针作为参数。在函数内部,我们分配了一个新的整数内存块,并将其地址赋值给指针*ptr
。然后,我们将42赋值给新分配的内存块。在main
函数中,我们将指针的地址传递给modify_pointer
函数,这样就可以在函数内部修改指针。最后,我们打印出修改后的*ptr
的值,并释放内存。
领取专属 10元无门槛券
手把手带您无忧上云