首页 > 解决方案 > 使用在线编译器时出现 C++ 分段错误,但在 VS Code 中同样有效

问题描述

我是 C++ 编程的新手。我Segmentation Fault在在线编译器中编译我的代码时遇到错误,但是当我尝试使用Visual Studio Codeg++离线编译它时(意味着在我的本地机器中)工作正常。

Code我试过的是

`

#include <iostream>

int main() {
    int *ptr;
    *ptr = 10;
    cout<<*ptr; //Prints 10 
    cout<<ptr; //Prints Some garbage address
}

但是上面的程序不能在在线编译器中工作(使用 onlinegdb)。我的机器配置 g++ 11 Visual Studio Code 2016

标签: c++11pointers

解决方案


这行*ptr = 10;从根本上是错误的,因为您不能通过取消引用指针来分配值。

这样做的正确方法是:

#include <iostream>
using namespace std;

int a=10;
int *ptr;
ptr=&a;
cout<<ptr<<endl;
cout<<*ptr<<endl;

推荐阅读