进程以退出代码 -1073741819 (0xC0000005) 结束 - C,CLion 但输出没有任何问题
Posted
技术标签:
【中文标题】进程以退出代码 -1073741819 (0xC0000005) 结束 - C,CLion 但输出没有任何问题【英文标题】:Process finished with exit code -1073741819 (0xC0000005) - C, CLion But There Is Nothing Wrong With the Output 【发布时间】:2021-10-23 22:36:01 【问题描述】:我已经完成了一个项目,在该项目中我需要使用 LinkedList 计算非常大的数字的乘法。但是,即使我得到了正确的答案,我也会收到一条错误消息。
进程以退出代码 -1073741819 (0xC0000005) 结束
只要其中一个数字非常大,就会发生这种情况。我查看了旧帖子,但找不到与我的情况相似的内容。
这是示例输出。
Example with error code Example without error code
我将数字作为数字存储在 LinkedList 中。所以,每个节点都有一个数字,我猜应该没有关于 int/long 的任何问题,但我找不到是什么原因造成的。当我调试代码时,我在代码末尾得到错误指针,那里没有代码。 Debug
希望我能正确解释我的问题,提前谢谢。
【问题讨论】:
请提供问题的minimal reproducible example。 我怀疑这是因为你的程序被信号终止了。 您可能想阅读以下内容:Why not upload images of code/errors when asking a question? 【参考方案1】:错误代码0xC0000005
在Microsoft Windows 中表示“访问冲突”,相当于Linux 的“分段错误”。
问题大概是如下代码:
char num1[] = "";
[...]
printf( "Num1: " );
gets( num1 );
如果用户输入的不是空行,这将导致buffer overflow。这是因为数组num1
只能容纳单个字符(空终止字符已经需要它)。
我建议您改用以下代码:
char num1[100];
[...]
printf( "Num1: " );
fgets( num1, sizeof num1, stdin );
num2
相关的代码也有同样的问题。
我强烈建议您阅读以下内容:
Why is the gets function so dangerous that it should not be used?
【讨论】:
以上是关于进程以退出代码 -1073741819 (0xC0000005) 结束 - C,CLion 但输出没有任何问题的主要内容,如果未能解决你的问题,请参考以下文章
如果进程以退出代码 0 结束,我应该调用 Process.destroy() 吗?
进程以退出代码 1 Spring Boot Intellij 结束
进程以退出代码 -1073741515 (0xC0000135) 结束