本机退出代码:-1073741510 (0xc000013a),同时使用素数检查器功能
Posted
技术标签:
【中文标题】本机退出代码:-1073741510 (0xc000013a),同时使用素数检查器功能【英文标题】:Native exiting with with code: -1073741510 (0xc000013a) while using prime checker function 【发布时间】:2017-08-15 11:29:38 【问题描述】:我一直在尝试创建自己的素数检查器函数,虽然奇怪的是,当我调用 isPrime(7) 时它返回 1,这很好,但是当我调用 isPrime(9) 时,它给了我以下错误:
“Mathematics.exe”:已加载“C:\Documents and Settings\mbryant\My Documents\Visual Studio 2010\Projects\Mathematics\Debug\Mathematics.exe”,已加载符号。 “Mathematics.exe”:已加载“C:\WINDOWS\system32\ntdll.dll”,找不到或打开 PDB 文件 “Mathematics.exe”:已加载“C:\WINDOWS\system32\kernel32.dll”,无法找到或打开 PDB 文件 “Mathematics.exe”:已加载“C:\WINDOWS\system32\msvcp100d.dll”,已加载符号。 “Mathematics.exe”:已加载“C:\WINDOWS\system32\msvcr100d.dll”,已加载符号。 线程“Win32 线程”(0x6ec) 已退出,代码为 -1073741510 (0xc000013a)。
程序“[6072]Mathematics.exe: Native”已退出,代码为 -1073741510 (0xc000013a)。
代码如下:
#include <iostream>
using namespace std;
bool isPrime(int x)
int b = 0;
int i = 2;
if(x == 2)
return 1;
if (x > 2)
while(i < x)
if ( (x % i) != 0)
b = b + 1;
i = i + 1;
if (b > 0)
return 1;
if (b == 0)
return 0;
int main()
cout << isPrime(9) << endl;
system("pause");
return 0;
非常感谢您帮助解决此问题。
【问题讨论】:
【参考方案1】:根据:
Jobs failing on Windows with Exit Code 0xC000013A
总体而言,退出代码 0xC000013A 表示应用程序因 CTRL+C 或关闭命令提示符窗口而终止
我复制、编译并运行了您的代码。使用x=9
,代码永远卡在while
循环中,所以我不得不使用关闭按钮(右上角的[x] 按钮)关闭程序。这产生了 0xc000013a 错误代码。 (使用x=7
,程序不会卡在while
循环中,所以可以正常退出。)
更具体地说,对于x=9
,程序卡在while
循环中,因为当i=3
然后(x % i) == 0
(9 mod 3 = 0) 和语句i = i + 1
永远不会执行。所以i
的增量永远不会超过 3,i < x
(3
因此,直接的问题是您的代码永远不会退出(对于x=9
),您必须停止它,大概是通过单击关闭按钮。但更大的问题是你的逻辑很糟糕,你的程序没有按照你想象的方式运行。
例如,当x=9
和i=2
时,则(x % i) != 0
并导致b = b + 1
。这意味着 b > 0
并且您的程序应该返回 1,您指出在 x=7
的情况下表示素数。但 9 不是素数。
另外,isPrime
的返回类型为 bool
,但您返回的是 int
。
【讨论】:
顺便说一句。 0xC000013A 是 NTSTATUS 代码 STATUS_CONTROL_C_EXIT:docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/…以上是关于本机退出代码:-1073741510 (0xc000013a),同时使用素数检查器功能的主要内容,如果未能解决你的问题,请参考以下文章
成功运行后 Django Web 应用程序的偶尔退出代码 -1073741819 (0xC0000005)
进程以退出代码 -1073741515 (0xC0000135) 结束
代码退出 -1073741515 (0xc0000135) '未找到依赖的 dll'