例如, 确保你没有做下面这样的事情:
char *itoa(int n)
{
char retbuf[20]; /* 错!...*/
sprintf(retbuf, "%d", n);
return retbuf; /* 错!...读者:那么返回字符串或其它集合的争取方法是什么呢?
阿一:返回指针必须是静态分配的缓冲区, 或者调用者传入 的缓冲区, 或者用 malloc() 获得的内存, 但不能是局部 (自动) 数组。...阿一:在 ANSI/ISO 标准 C 引入 void * 一般指针类型之前, 这种类型转换通常用于 在不兼容指针类型赋值时消除警告。...在 ANSI/ISO 标准 C 下, 这些转换不再需要, 而起事实上现代的实践也不鼓励 这样做, 因为它们可能掩盖 malloc() 声明错误时产生的重要警告。