Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 取消对整数指针的引用会导致分段错误_C++_Pointers - Fatal编程技术网

C++ 取消对整数指针的引用会导致分段错误

C++ 取消对整数指针的引用会导致分段错误,c++,pointers,C++,Pointers,这是我的代码,主函数中的控制台输出行和延迟导致了问题。我有点困惑。我的作业有没有做错什么?请帮忙。谢谢。*pNum=5;-pNum未初始化! 你需要先让pNum指向一些真实的内存。 例如: 您正在取消对pNum的引用,但未将其设置为指向任何有效内容。这就是未定义行为的原因。也许您是想写:int*pNum=&num1。。。。这样,当您设置*pNum=5时,它实际上会将num1设置为5,而不是crashing@RSahu那么这一行呢*pNum=5@JeremyFriesner我实际上想将5存储到pN

这是我的代码,主函数中的控制台输出行和延迟导致了问题。我有点困惑。我的作业有没有做错什么?请帮忙。谢谢。

*pNum=5;-pNum未初始化! 你需要先让pNum指向一些真实的内存。 例如:


您正在取消对pNum的引用,但未将其设置为指向任何有效内容。这就是未定义行为的原因。也许您是想写:int*pNum=&num1。。。。这样,当您设置*pNum=5时,它实际上会将num1设置为5,而不是crashing@RSahu那么这一行呢*pNum=5@JeremyFriesner我实际上想将5存储到pNum所指向的位置。@在您发布的代码中,pNum没有指向任何定义良好的位置,因此您看到了崩溃。非常感谢。
#include <iostream>


void PassByValue(int num) {
    std::cout << "inside PassByValue function" << std::endl;
}

void PassByRef(int &num) {
    std::cout << "inside PassByRef function " << std::endl;
    std::cout << "value of num is: " << num << std::endl;
    num = 50;
    std::cout << "value of num is: "<< num << std::endl;
}

int main() {
    int num1;
    int* pNum;
    num1 = 3;
    *pNum = 5;
    std::cout << "pNum is: " << *pNum << std::endl;
    PassByValue(num1);  
    PassByRef(*pNum);
}
pNum = new int();
*pNum = 5;
....
// Or:
int num2;
pNum = &num2;
*pNum = 5;
....