读者:有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返回 串却是垃圾信息。
阿一:确保指向的内存已经正确分配了。...例如, 确保你没有做下面这样的事情:
char *itoa(int n)
{
char retbuf[20]; /* 错!...*/
}
一种解决方案是把返回缓冲区声明为 static char retbuf[20]; 本方案并非完美, 尤其是有问题的函数可能会递归调用, 或者会同时使用到它 的多个返回值时。...阿一:在 ANSI/ISO 标准 C 引入 void * 一般指针类型之前, 这种类型转换通常用于 在不兼容指针类型赋值时消除警告。...在 ANSI/ISO 标准 C 下, 这些转换不再需要, 而起事实上现代的实践也不鼓励 这样做, 因为它们可能掩盖 malloc() 声明错误时产生的重要警告。