本机退出代码:-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 &lt; x (3

因此,直接的问题是您的代码永远不会退出(对于x=9),您必须停止它,大概是通过单击关闭按钮。但更大的问题是你的逻辑很糟糕,你的程序没有按照你想象的方式运行。

例如,当x=9i=2 时,则(x % i) != 0 并导致b = b + 1。这意味着 b &gt; 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),同时使用素数检查器功能的主要内容,如果未能解决你的问题,请参考以下文章

在启动期间程序退出,代码为 0xc0000139 [重复]

成功运行后 Django Web 应用程序的偶尔退出代码 -1073741819 (0xC0000005)

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

代码退出 -1073741515 (0xc0000135) '未找到依赖的 dll'

如何修复错误“进程以退出代码-1073741819(0xC0000005)完成”

为啥 PyQt 在没有信息的情况下会崩溃? (退出代码 0xC0000409)