7.3我怎么知道strcat(空间)分配的事情呢?
一般地说, 使用指针的时候, 你必须总是考虑内存分配, 除非明确知道编译器替你做了此事。如果一个库函数的文档没有明确提到内存分配, 那么通常需要调用者来考虑。
Unix 型的手册页顶部的大纲段落或ANSI C 标准有些误导作用。那里展示的程序片段更像是实现者使用的函数定义而不是调用者使用的形式。特别地, 很多接受指针(如结构指针或串指针) 的函数通常在调用时都用到某个由调用者分配的对象(结构, 或数组—— 参见问题6.3 和6.4) 的指针。其它的常见例子还有time() (参见问题13.10) 和stat()。
Unix 型的手册页顶部的大纲段落或ANSI C 标准有些误导作用。那里展示的程序片段更像是实现者使用的函数定义而不是调用者使用的形式。特别地, 很多接受指针(如结构指针或串指针) 的函数通常在调用时都用到某个由调用者分配的对象(结构, 或数组—— 参见问题6.3 和6.4) 的指针。其它的常见例子还有time() (参见问题13.10) 和stat()。