top/contents search

16. 奇怪的问题

16.1 为什么这个循环总是执行一次?

	for(i = start; i < end; i++);
		{
		printf("%d\n", i);
		}

16.1b 我遇到了令人费解的语法错误,完全说不通,而且程序的大部分似乎都没有被编译。

16.1c 为什么我的过程调用不起作用?编译器似乎直接跳过了它。

16.2 文件中的第一个声明就出现奇怪的语法错误,但看起来没问题。

16.3 这个程序甚至在运行前就崩溃了!(使用调试器单步执行时,它在第一个语句之前就死了main.)

16.4 我的程序似乎运行正常,但在退出时崩溃,在main()的最后一条语句之后。这可能是由什么原因引起的?

16.5 这个程序在一台机器上运行完美,但在另一台机器上却得到奇怪的结果。更奇怪的是,添加或删除调试打印语句会改变症状……

16.6 为什么这段代码

char *p = "hello, world!";
p[0] = 'H';
会崩溃?

16.7

我有一些代码试图解包外部结构,但它以“未对齐访问”的消息崩溃。这是什么意思?代码如下

struct mystruct {
	char c;
	long int i32;
	int i16;
} s;

char buf[7], *p;
fread(buf, 7, 1, fp);
p = buf;
s.c = *p++;
s.i32 = *(long int *)p;
p += 4;
s.i16 = *(int *)p;

16.8 “段错误”、“总线错误”和“通用保护错误”是什么意思?什么是“核心转储”?


回到顶部

contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管