在C语言中,要改变一个函数外部的指针,可以通过传递指针的指针或者使用返回值的方式来实现。
void changePointer(int** ptr) {
int* newPtr = malloc(sizeof(int));
*newPtr = 10;
*ptr = newPtr;
}
int main() {
int* ptr = NULL;
changePointer(&ptr);
// 此时ptr指向了一个新的内存地址,可以访问到函数内部创建的newPtr
printf("%d\n", *ptr); // 输出 10
free(ptr); // 记得释放内存
return 0;
}
int* createPointer() {
int* ptr = malloc(sizeof(int));
*ptr = 10;
return ptr;
}
int main() {
int* ptr = createPointer();
// 此时ptr指向了函数内部创建的指针
printf("%d\n", *ptr); // 输出 10
free(ptr); // 记得释放内存
return 0;
}
以上两种方法都可以实现改变函数外部指针的目的,具体选择哪种方式取决于实际需求和代码结构。
关于指针的更多概念、分类、优势、应用场景以及腾讯云相关产品和产品介绍链接地址,可以参考腾讯云的官方文档:指针相关文档。
领取专属 10元无门槛券
手把手带您无忧上云