当使用while(true)循环,循环中没有break,循环中有一些语句时会发生什么?我明白这个循环将进入无休止的循环。但我真正想了解的是在OS和SDK方面?他们中的任何一个处理这样的循环或系统将在一定时间后崩溃。如果他们处理这个问题,它是如何实施的?
ghhaqwfi1#
这取决于循环中的内容。任何分配内存或其他资源的东西最终都会耗尽资源。会发生什么取决于资源和代码的健壮程度(即它是假定分配了它所要求的所有内存,还是执行NULL检查?)如果循环中没有任何东西使用资源,那么循环就没有理由停止,除非用户或操作系统终止该进程。
// This will eventually crash. while(true) { p = malloc(100); *p = 0; } // this will go on forever. while(true) { looping = true; }
字符串
1条答案
按热度按时间ghhaqwfi1#
这取决于循环中的内容。任何分配内存或其他资源的东西最终都会耗尽资源。会发生什么取决于资源和代码的健壮程度(即它是假定分配了它所要求的所有内存,还是执行NULL检查?)
如果循环中没有任何东西使用资源,那么循环就没有理由停止,除非用户或操作系统终止该进程。
字符串