【发布时间】:2016-05-03 19:56:32
【问题描述】:
虽然我知道这不一定是最好的编码方式,但我想在函数内部初始化一个指针。然后,我可以稍后使用它并删除它。它应该看起来像这样:
#include <iostream>
void initializer(double *d_ptr)
{
d_ptr = new double;
}
int main(int argc, char **argv)
{
double *my_d;
initializer(my_d);
*my_d = 2;
std::cout << *my_d << std::endl;
delete my_d;
}
但是,这会导致段错误。为什么?
【问题讨论】:
-
@LogicStuff 我知道基本错误是如何通过引用传递指针(不了解如何通过引用传递指针)但是在搜索如何初始化内部指针时无法找到这些答案的一个功能。我认为基本错误是重复的,但是这个问题不是重复的,因为类似的答案已经表明您知道自己在做什么。这个问题是关于如何弄清楚为什么函数没有正确初始化,即使它编译了。
-
@juanchopanza 见上文?
-
实际上...我刚刚阅读了 stackoverflow 对重复项的使用。看起来这属于重复的情况,但不应删除该问题,因为该问题是唯一的,如果您遇到此问题,则很难找到链接的答案。听起来对吗? stackoverflow.com/help/duplicates
标签: c++ function pointers initialization