【发布时间】:2011-03-23 10:01:39
【问题描述】:
我有 8GB 的内存和 80GB 的硬盘。 我有如下所示的三个程序。
1)
main()
{
while(1)
x();
}
x()
{
printf("hello\n");
}
上面的程序这里会不会有内存泄漏?我想不会。如果它没有发生,那么会发生什么?什么时候停止?
2)
main()
{
int *x;
while(1)
x=malloc(100*size(int));//there is a memory leak here
}
很明显这个程序会在一段时间后崩溃,但我想知道何时,查看我上面提到的资源。
3)
main()
{
x();
}
x()
{
x();
}
上面的程序是无限递归的吗?最终会发生什么?考虑到我拥有的资源,这个程序什么时候会崩溃/死机?
【问题讨论】:
-
我有一个问题要问你。当您尝试这些程序时会发生什么?需要多长时间?
-
这是三个不同的(相关问题),其中一些无法回答(特别是 2 取决于您的配置、操作系统位数,甚至编译器选项)。更重要的是,答案实际上几乎没有价值......
-
代码在没有适当缩进的情况下接近“难以阅读”。
-
我建议你发表你自己的理论来回答,然后我们有一些基础可以帮助你。目前我不清楚你不明白什么。
-
为什么关闭?为什么这不是一个真正的问题?我只是想知道程序什么时候会崩溃,实际上它可能需要很多时间,有时永远无法找到它什么时候会崩溃?