c++ - 关于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++
解决方案
我不确定你要做什么,但是里面的这一行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;
}
推荐阅读
- powershell - 使用管道对象填充 mail -to 和 -attachment
- vba - VBA:添加到用户窗体的标题,当前文本已经作为标题
- c++ - WiringPi C++串口函数随机停止工作
- c# - 为什么“在哪里”改变原始数据类型
- python - 在python中按特定顺序查找子字符串
- javascript - 你如何比较两个数组,并找出有多少值是相似的?
- excel - 使用 .PasteSpecial 时,运行时错误 438 对象不支持此属性或方法
- swift - 如何检测来自 NSWindowController 内的 NSToolbarItem 的点击?
- ruby - 当方法仅返回 false 时,如何调试 ruby-ldap?
- python - 如何使用 matplotlib hlines 生成子图