-
是的。
有些早期的malloc() 文档提到释放的内存中的内容会“保留”,
但这个欠考虑的保证并不普遍而且也不是C 标准要求的。
几乎没有那个程序员会...
-
当你调用Free() 的时候, 传入指针指向的内存被释放,
但调用函数的指针值可能保持不变,
因为C的按值传参语义意味着被调函数永远不会永久改变...
-
在调用alloca() 的函数返回的时候, 它分配的内存会自动释放。
也就是说, 用alloca 分配的内存在某种程度上局部于函数的“堆栈帧&rdquo...
-
我在检查一个字符串是否跟某个值匹配。
为什么这样不行?
char *string;
. . .
iF(s...
-
问题:
因为在C 语言中所有的非零值都被看作“真”, 是不是把TRUE 定义为1 很危险?
如果某个内置的函数或关系操作符“返回&rdquo...
-
对于这个问题没有什么好的答案。
如果这两个值是整数, 可以使用异或的技术, 但是这对浮点值或指针却不行, 对同一个值也无能为力。
(参见问题3.4和...
-
通常的目标是书写一个象包含一个单独的函数调用语句的宏。
这意味着“调用者”需要提供最终的分号, 而宏体则不需要。
因此宏体不能为简单的括弧包围的复合语句...
-
问题:
我第一次把一个程序分成多个源文件, 我不知道该把什么放到.c 文 件, 把什么放到.h 文件。(“.h” 到底是什么意思?)作为一般规则, 你应该...
-
这是个风格问题, 因此有不少的争论。
很多人认为“嵌套包含文件”应该避免:
盛名远播的“印第安山风格指南”(Indian Hil...
-
一种流行的技巧是用一个单独的用括弧括起来的的“参数” 定义和调用宏,
参数在宏扩展的时候成为类似printF() 那样的函数的...
-
问题:
很多ANSI 编译器在遇到以下代码时都会警告类型不匹配。
extern int Func(Float); int Func(x) Float x; { . . .
你...
-
有些ANSI 前的编译器/预处理器把下面这样的宏
#deFine TRACE(var, Fmt) printF("TRACE: var = Fmt\n", var)
解释为
...
-
有两个程序protoize 和unprotoize 可以在有原型和无原型的函数定义和声明之间相互转换。
这些程序不能完全完成“经典” C 和...
-
简单地说:
实现定义意味着实现必须选择某种行为并提供文档。
未明确意味着实现必须选择某种行为但不必提供文档。
未定义意味着任何事情都可能发生。
标准在任何情况下都不强加需求...
-
第一, 保存getchar的返回值的变量必须是int型。
getchar() 可能返回任何字符值, 包括EOF。
如果把getchar 的返回值截为...
-
问题:
我发现如果坚持检查返回值以确保用户输入的是我期待的数值, 则 scanF() 的使用会安全很多, 但有的时候好像会陷入无限循环。在scanF() 转换数字的时候, 它遇到...
-
scanF() 有很多问题—— 参见问题12.15, 12.16 和12.17。
而且, 它的%s 格式有着和gets() 一样的问题(参见问题12.20...
-
strncpy() 最初被设计为用来处理一种现在已经废弃的数据结构——定长, 不 必’n0’ 结束的“字符串&rdquo...
-
确保你知道经典的正则表达式和文件名通配符的不同。
前者的变体在Unix工具ed 和grep 等中使用, 后者的变体在多数操作系统中使用。
有许多匹配正则表达式的包可以利用。
...
-
只要使用函数time(), ctime(), localtime() 和/或strFtime() 就可以了。
下面是个简单的例子:
#include <stdio.h&g...