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';会崩溃?
我有一些代码试图解包外部结构,但它以“未对齐访问”的消息崩溃。这是什么意思?代码如下
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 “段错误”、“总线错误”和“通用保护错误”是什么意思?什么是“核心转储”?