首页 > 解决方案 > 关于c++函数中指针赋值的一个简单问题

问题描述

这是我的代码,a = b;在函数之后,a 仍然是nullptr....

int getBox(int *a) {
  int *b = new int;
  *b = 3;
  a = b;
  std::cout << *a;
}

int main() {
  int *a = nullptr;
  getBox(a);
  std::cout << a;
}

我想这是一个非常简单的问题......也许我忘记了太多关于 C++

标签: c++

解决方案


我不确定你要做什么,但是里面的这一行getBox()

a=&b;

实际上并没有改变a主要,您实际上覆盖了指针(由函数制作的副本),并使其指向其他地方。

你可以做这样的事情(再次,我不明白这一点):

int getBox(int ** a){
    int *b = new int;
    *b=3;
    *a=b;
    std::cout<<*a;
}

int main(){
    int *a= nullptr;
    getBox(&a);
    std::cout<<a;

}

推荐阅读