关于指针的一些问题
Last updated on 8 months ago
看到一个改错题(很常见的一道题),一个关于申请内存的函数,即传入一个指针 p,然后分配内存,首地址保存到p,然后返回,由于malloc 是分配到栈的,即使函数消亡了,内存也不会回收,逻辑上没毛病,但实际上这个传入的参数是有问题的,刚好借这个题目复习下指针的一些操作
1 |
|
错在哪?
知识回顾:https://blog.csdn.net/rouse2617/article/details/106846613 以前在csdn 有发过一篇关于指针通俗理解可以先看下
memory 传入参数p,只是单纯的复制了p所指向的值而已,main里面的 p 和 函数memory里面的p 并不是同一个,通过代码可以验证,这两个的地址都不相同
怎么改正,改正的方法有那些?
方法1 : 传入一个指针的地址,通过修改指针地址所在的值,即可达到目标,听起来有点绕,其实这个就是多重指针的用途! 这里暂时先不讨论
方法2: 使用指针引用, 引用我们都知道,通俗的说就是一个值的别名,传入一个指针引用,相当于操作不本体一样,这种方式也比较便捷,更容易理解;
具体的细节后面再更新