C++ SIGSEGV error
C++ SIGSEGV error
代码给出sigsegv错误。如何删除它?该代码是在乘法的每个步骤中乘以数组的元素和Modulo 10 9 7。
int main()
{
int n;
int A[10];
cin >> n;
for(int i = 0; i < n; i++)
cin >> A[i];
int ans = 1;
int m = 1000000007;
for(int i = 0; i < n; i++)
{
ans = (ans * A[i]) % m;
}
cout << ans;
}
在您的代码中,数组a被声明为10个元素。但是,之后向用户要求处理的元素数量。另外,用户所划分的第一个数字似乎是负数或大于10。在这种情况下,您需要测试诱因的值。
。除此之外,您还可以使用std ::矢量而不是数组a作为动态大小。然后,用户给出了元素量(使用第一个std :: cin)之后,您可以设置向量的大小。然后,其余代码将在某些化妆品更改中保持几乎相同。
C 中的数组不会神奇地调整自己的大小。结果,如果用户输入10
或更多n
的值,则两个循环都将尝试访问数组A
的末端的元素。例如,如果n
是13
,则循环将访问名为A
的10
元素数组的13
元素。
那是不确定的行为。如果您的主机系统是一些UNIX变体(例如Linux),并且操作系统可检测您的程序访问内存,则它将向您的程序发送SIGSEGV
信号,该信号强行导致程序退出。但是,这只是许多可能的症状。
鉴于这是一项家庭作业练习,我只想在阅读n
之后,需要解决一种用n
元素动态分配数组的方法。使用标准容器(例如std::vector<int>
)是一种方法 - 但是,根据您的作业要求,可能不允许使用。在这种情况下,查找操作员new
和delete
。(不,我不会更具体 - 这是您的作业,不是我的)
相关文章:
- "error: no matching function for call to"构造函数错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 创建LinkedList退出,返回代码为-11(SIGSEGV)
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- C++ "error: invalid use of void expression"
- struct.error:解压缩 C++ 结构时,解包需要 288 字节的缓冲区
- 如何修复"error: ‘_1’ was not declared in this scope"?
- SIGSEGV 使用shared_ptr引用时
- 从不同目录执行时"symbol lookup error:",否则从构建目录执行时按预期工作
- 对象声明中的模板"error: expected expression"
- 在C++中使用 Catch 测试框架编译错误"error: expected ';' at end of declaration list"
- OpenCV 3.4.1 error readNetFromTensorflow 无法在 cv::d nn::ReadProtoFromBinaryFile 中打开 .pb
- SIGSEGV, 分段错误. 而 printf() 数组索引的值
- 为什么我的代码中出现'Runtime Error - SIGSEGV'?
- C++ SIGSEGV error