gpt4 book ai didi

c++ - 更改指针指向的位置,同时保持其他两个指针的值

转载 作者:行者123 更新时间:2023-11-28 06:23:26 24 4
gpt4 key购买 nike

所以,我一直在尝试学习 C++,并且在我正在阅读的教程书中,我陷入了指针到指针的问题。我正在尝试做的是在不更改原始指针的值的情况下更改指针指向的指针。这是一些代码...

#include <iostream>
void testFunc(int **func_p_to_p) {
int *createdPointer = new int(10);
*func_p_to_p = createdPointer;
cout << **func_p_to_p << endl; //prints 10 as I expect
}
int main() {
int **main_p_to_p = NULL;
int *mainPointer = new int(5);
main_p_to_p = &mainPointer;
testFunc(main_p_to_p);
cout << **test << endl;//prints 10, I expect this...
cout << *mainPointer << endl; //prints 10 as well, I don't want that.
}

我之前问过一个类似的问题,here我明白发生了什么事。但是,我似乎无法弄清楚如何在不更改原始值的情况下更改指针指向的位置。谁能解释我将如何做到这一点?谢谢。

最佳答案

行内

*func_p_to_p = createdPointer;

您首先按照您的指针指向它指向的内容:int *mainPointer 的地址。

接下来,您为该指针分配一个新值,即 createdPointer 的值,它是 new int(10) 的地址。

因此,您的 mainPointer 现在更改为指向与 createdPointer 相同的内存。这对您来说有意义吗?

关于c++ - 更改指针指向的位置,同时保持其他两个指针的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28953274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com