c函数陷入死循环和跳出
#include <stdio.h>void printstar();
void print_message();
int main()
{
printstar();
}
void printstar()
{
//printf("hello world\n");//执行过这条语句后,出现死循环! 不执行退出程序!
print_message();
}
void print_message()
{
printstar();
}
这是必然的啊,互相调用而没有终止条件,必然会陷入死循环啊,不出现才怪了,不知道你想表达什么 如果不执行别的语句,就不会循环 本帖最后由 夜雨de街灯 于 2016-4-19 09:23 编辑
访问越界,说白些,就是你定义了函数,在未分配内存情况下对他操作,从而引发问题,直接退出。
你加入hello world后,系统给printstar()函数分配内存(地址)所以可以用,当然print_message()这时也可以用了。
其实你自己可以调试一下{:10_256:}
会发现提示unhandled exception in XXX.exe 0xc0000005:Access Violation
两个函数互相调用,而且还没有退出的地方。 如果调用的是空函数,系统会不会分配内存?
页:
[1]