【发布时间】:2020-08-20 07:03:27
【问题描述】:
我是 C++ 编程新手。我在在线编译器中编译我的代码时遇到Segmentation Fault 错误,但是当我尝试在离线时使用Visual Studio Code 和g++ 编译它时(意味着在我的本地机器中)工作正常。
我试过的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
【问题讨论】:
-
欢迎来到 SO!这段代码没有多大意义。如果您尝试创建一个整数,请删除指针。如果您尝试创建一个指针,则需要分配一些内存或将其指向一些有效的内存块。取消引用空指针是未定义的行为,这意味着它可以做任何事情(包括似乎可以工作)。
-
嗨 ggorlen,我只是在玩指针。我没有编写任何有意义的代码,这里未分配的指针将包含一些垃圾地址,对吗?我们可以存储我阅读的博客中同样提到的内容,但为什么在线和离线编译器之间存在不匹配?