我尝试过很多教程并且更加困惑。所以请用最简单的答案教这个菜鸟。如果可能的话,那就坚持问题......我的信息超载了:)
首先是主要功能
main(){
int y=0;
display(&y);
}
现在功能
int display(int* x){
//do something depending on different values of x
}
其中一个案例如下: “如果没有指向变量,也就是说,如果变量的地址为NULL,则函数将变量的值设置为零。”
现在我需要做的显示功能的理解
if (x==NULL)
*x=0;
现在这里是我被困的地方...... - 如果我用显示调用该函数(NULL);我在Visual中遇到以下错误 “BTP 300 A1.exe中0x00C84036处未处理的异常:0xC0000005:访问冲突写入位置0x00000000。”
如果函数的地址为null,我如何在函数中存储y值?
或问题是错误的,它应该将指定变量指向的地址存储的所述值为空,即y = Null ???
如果int * z是一个空指针,而不是z所指向的地址的值,以及存储在指向的地址中的值是什么?
答案 0 :(得分:2)
最有可能的,这意味着:
int value_to_display = x? *x: 0;
// do something with value_to_display
即,要求将空指针视为指向零的指针。
答案 1 :(得分:0)
这两行不起作用:
if (x==NULL)
*x=0;
因为你试图取消引用被禁止的NULL。
你想要做的是:
if (x==NULL)
x = new int(0);