我正在完成任务,我已经完成了很多工作,但我遇到了障碍。我正在尝试打印出我的程序生成的所有“emirp”数字,但是如果我在运行EMIRP查找循环后尝试打印,则会在此消息中导致Debug Assertion Failed错误。
这是节目源。
我是C ++过渡到使用C的人,所以也许这是导致它的C特定问题。如果您需要任何解释,请询问。我正在使用Microsoft Visual Studio 2012 Professional编译它。
答案 0 :(得分:0)
您的问题是emirps++
:
您将无法释放最初分配的内存,因为emirps
不再指向该内存的开头。
你肯定不能在那时将emirps[i]
传递给printf
(或任何其他功能)。
答案 1 :(得分:0)
在我的情况下,它与将unicode主程序与用C编写的非unicode外部库混合有关。这对我有帮助。在外部库中调用第一个printf之前,我必须将控制台模式更改为ansi。在外部库调用后,我必须将模式设置回unicode:
#include <io.h>
#include <fcntl.h>
_setmode(_fileno(stdout), _O_TEXT);
....
_setmode(_fileno(stdout), _O_U16TEXT);