首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编译时出错:错误-[由于信号而终止:中止陷阱(6)]

编译时出错:错误-[由于信号而终止:中止陷阱(6)]
EN

Stack Overflow用户
提问于 2021-04-29 03:24:14
回答 2查看 46关注 0票数 1

编译时出错:错误终止,原因是信号: ABORT TRAP (6)

代码语言:javascript
运行
复制
#include <iostream>

using namespace std;
int main()
{
    int j, r = 2, p = 1;
    int v[8];
    for (j = 0; j < 8; j++)
    {
        v[j - p] = 3 * j - r;
        p = -p;
        r = r - p;
    }
    for (j = 0; j < 8; j++)
        cout << v[j] << " ";
}
EN

回答 2

Stack Overflow用户

发布于 2021-04-29 03:28:49

您的程序调用未定义的行为,当j为0时,您将在v[-1]中编写,数组没有负索引。

也就是说,您的代码中没有任何东西会阻止它进行编译。

票数 0
EN

Stack Overflow用户

发布于 2021-04-29 03:29:01

至少这句话

代码语言:javascript
运行
复制
v[j - p] = 3 * j - r;

调用未定义的行为,因为当例如当j等于0p等于1时,或者当j等于7p等于-1时,试图访问数组之外的内存。在这些情况下,您将获得对数组v无效的索引-18

因此,程序在运行后会中止。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67306659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档