引入: 在主函数中只是定义了一个空指针p,如何才能通过子函数的调用来完成修改p的内容
示例代码1:
#include<stdio.h>
#include<stdlib.h>
// 因为刚开始p什么都没有指向(但是p是占有一片内存空间的,只是其中的内容为NULL),所以直接把p的内容传进子函数赋值是没有意义的,相当于在子函数中改变了指向了一片新的存储空间,修改的是新的存储空间的内容,主函数中p指向的内容并没有改变(相当于有创建了一个指针修改了不相关内存的内容)
// 解决方法之一是:首先在主函数内开辟一块动态存储空间首地址赋给p,然后再对p指向的内容进行修改即可
void fun(int* p)
{
p = (int*)malloc(sizeof(int));
// 开始的p没有指向所以此处就给他分配了一片存储空间,并

本文探讨了在C++中如何处理空指针作为函数参数的问题,以及如何通过多级指针实现对指针本身的修改。文中通过示例代码1和2详细分析了直接修改指针值可能导致的错误,并强调了动态内存管理和指针传递中的注意事项,指出在子函数中修改指针地址内容会导致不同内存区域的变化,而非原始指针的修改。示例代码2提出了解决方案,即通过传递指针的指针来实现对空指针的正确修改。
最低0.47元/天 解锁文章
9051

被折叠的 条评论
为什么被折叠?



