-
这并非易事。
一种办法是传入指向[0][0] 成员的的指针和两个维数, 然后“手 工&RDquo; 模拟数组下标。
void f2(int *aryp, int n...
-
没有完美的方法。
假设有如下声明
int array[NROWS][NCOLUMNS];
int **array1; /* 不齐的*/
int **array2; /* 连...
-
是的。
有些早期的malloc() 文档提到释放的内存中的内容会“保留&RDquo;,
但这个欠考虑的保证并不普遍而且也不是C 标准要求的。
几乎没有那个程序员会...
-
在调用alloca() 的函数返回的时候, 它分配的内存会自动释放。
也就是说, 用alloca 分配的内存在某种程度上局部于函数的“堆栈帧&RDquo...
-
我在检查一个字符串是否跟某个值匹配。
为什么这样不行?
char *string;
. . .
if(s...
-
问题:
因为在C 语言中所有的非零值都被看作“真&RDquo;, 是不是把TRUE 定义为1 很危险?
如果某个内置的函数或关系操作符“返回&RDquo...
-
通常的目标是书写一个象包含一个单独的函数调用语句的宏。
这意味着“调用者&RDquo;需要提供最终的分号, 而宏体则不需要。
因此宏体不能为简单的括弧包围的复合语句...
-
问题:
我第一次把一个程序分成多个源文件, 我不知道该把什么放到.c 文 件, 把什么放到.h 文件。(“.h&RDquo; 到底是什么意思?)作为一般规则, 你应该...
-
这是个风格问题, 因此有不少的争论。
很多人认为“嵌套包含文件&RDquo;应该避免:
盛名远播的“印第安山风格指南&RDquo;(Indian Hil...
-
根据“缺少的&RDquo; 头文件的种类, 有几种情况。
如果缺少的头文件是标准头文件, 那么你的编译器有问题。
你得向你的供货商或者精通你的编译器的人求助。
对...
-
尽管这是种常见的需求, 但却没有什么标准的办法。
gcc 提供了和-E 一起使用的-dM 选项, 其它编译器也有类似的选项。
如果编译器文档没有帮助...
-
一种流行的技巧是用一个单独的用括弧括起来的的“参数&RDquo; 定义和调用宏,
参数在宏扩展的时候成为类似printf() 那样的函数的...
-
1983 年, 美国国家标准协会(ANSI) 委任一个委员会X3J11 对C 语言进行标准化。
经过长期艰苦的过程, 该委员会的工作于1989 年12 月14 日正式被批准为AN...
-
问题:
很多ANSI 编译器在遇到以下代码时都会警告类型不匹配。
extern int func(float); int func(x) float x; { . . .
你...
-
不能。
main() 必须声明为返回int, 且没有参数或者接受适当类型的两个参数。
如果你调用了exit()但还是有警告信息, 你可能需要插入一条冗余的return语句
(...
-
有两个程序protoize 和unprotoize 可以在有原型和无原型的函数定义和声明之间相互转换。
这些程序不能完全完成“经典&RDquo; C 和...
-
简单地说:
实现定义意味着实现必须选择某种行为并提供文档。
未明确意味着实现必须选择某种行为但不必提供文档。
未定义意味着任何事情都可能发生。
标准在任何情况下都不强加需求...
-
问题:
我发现如果坚持检查返回值以确保用户输入的是我期待的数值, 则 scanf() 的使用会安全很多, 但有的时候好像会陷入无限循环。在scanf() 转换数字的时候, 它遇到...
-
scanf() 有很多问题—— 参见问题12.15, 12.16 和12.17。
而且, 它的%s 格式有着和gets() 一样的问题(参见问题12.20...
-
strncpy() 最初被设计为用来处理一种现在已经废弃的数据结构——定长, 不 必’n0’ 结束的“字符串&RDquo...