进程以退出代码 -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 但输出没有任何问题的主要内容,如果未能解决你的问题,请参考以下文章

进程以退出代码 -1073741571 结束

如果进程以退出代码 0 结束,我应该调用 Process.destroy() 吗?

进程以退出代码 1 Spring Boot Intellij 结束

进程以退出代码 -1073741515 (0xC0000135) 结束

这是啥错误,我该如何解决?进程以退出代码 -1073740791 (0xC0000409) 结束

进程以python中的退出代码1错误完成[重复]