我试图设置一个未分配的内存位置的值以获取异常,所以我一直在做的是获取一个整数(带有一个有效的内存位置)以获取其地址,并向其添加4(去希望是下一个整数),将其解引用并为其分配值(1):
int i = 20;
(*((&i) + 4)) = 1;
此行抛出一个错误,说
CL.exe退出,代码为2。
这是编译器错误吗?
注意:我正在VS 2019上使用Microsoft C ++编译器。
编辑:这是代码暗面的屏幕截图(添加是为了清楚表明这是我得到的唯一错误):
我只是想知道这是否是编译器错误,因为它没有显示适当的错误消息。
答案 0 :(得分:2)
显然,这确实是一个编译器错误。 The fix,因为它已实施且该发行版正在等待中。
感谢Hans Passant的评论,我打开了一个错误,并将在以后的Visual Studio 2019更新中进行处理。