使用指针时没有得到正确的输出
Not getting right output when using pointers
我得到一些错误。你知道我哪里出错了吗?我想我的逻辑是正确的。
int* adderFunction(int a, int b)
{
int result;
int *pResult;
pResult = &result;
result = a + b;
return (pResult);
}
No。
您正在返回指向局部变量result
的指针。当你从函数返回时,它已经不存在了,但是你返回了一个指向它的指针。
您正在堆栈上创建一个指针,并试图返回该指针,该指针在您完成执行代码后被删除。如果想在堆上创建一些东西,则需要使用new
关键字。
然而,你的问题可以更简单地解决:
int adderFunction(int a, int b) {
return a + b;
}
返回的指针在函数结束后超出了作用域。这是未定义行为
results指向堆栈变量。如果您希望将数据分配到堆上,则应该使用new
。但你最应该记得的是稍后再释放它。我更喜欢
int adderFunction(int a, int b)
{
return a+b;
}
如果你想保留指针符号
,你也可以这样做void adderFunction(int a, int b,int* pResult)
{
*pResult=a+b;
}
相关文章:
- 用指针预测输出
- 当使用通配符和null指针调用函数时,对输出的说明
- 以下与指针相关的代码的输出是什么?
- 用于输出矩阵的二维指针
- 为什么数组到指针的输出不相关
- 重载 ostream << 运算符,指针作为参数,导致输出上的内存地址
- 指针和类,输出
- 空指针(为缺少的输出数组调用的 create() 在 create,文件 /home/m/OpenCV/modules/
- 如何调试输出指向成员的指针
- 当(错误)将指针指向指针时,我将如何收到以下输出
- 如何传递unique_ptr<T>代替原始*输出*指针参数?
- 为什么 c_str() 在返回常量指针值时不输出地址
- C++指针输出一致性
- x86 上的指针大小和奇怪的字符输出
- 从未初始化的 C++ 指针仍输出为已初始化
- 多重输出指针到C 中的文件
- 如何在 c++ 中输出指针对象的属性(具有 2 个或更多属性)
- 输出指针上的const前缀
- 控制台在输出指针数组和C++迭代时崩溃
- 打印字符串流输出指针