cout给出运行时错误

时间:2014-05-27 07:07:01

标签: c++

#include "iostream"

using namespace std;

int main(int argc, char const *argv[])
{
    int n=100000;
    int cost=6;
    for (int i = 1; i <= n; ++i)
    {
        cout<<cost<<endl;
    }
    return 0;
}

ideone.com(使用SPOJ编译器的在线g ++编译器)上编译和运行时,上述程序会产生运行时错误。注释掉cout行后,程序将成功运行。有人可以指出相同的原因吗?

2 个答案:

答案 0 :(得分:5)

正如pts在他的评论中指出的那样,ideone.com对你可以打印的字节数有限制。如果将n更改为10000,则代码运行正常。

不会给出编译错误的最大n值是2 ^ 15 = 32768。

如果仔细观察,可以看到它终止于信号:25,SIGXFSZ。您可以查看this page以了解信号的含义。

  

SIGXFSZ 25超出文件大小限制(4.2 BSD)

答案 1 :(得分:0)

理论上如果int是您平台上的两个字节(标准允许),这可能会溢出。但最有可能的错误是由于ideone.com的输出大小限制。学习解释错误信息:它们是你的朋友,并且与所需的程序输出一样重要。