8.6 我有個函數, 本該返回一個字符串, 但當它返回調用者的時候, 返回串卻是垃圾信息。

確保指向的內存已經正確分配了。例如, 確保你沒有做下面這樣的事情:
	char *itoa(int n)
	{
	    char retbuf[20];	      /* 錯! */
	    sprintf(retbuf, "%d", n);
	    return retbuf;	        /*  錯!*/
	}
一種解決方案是把返回緩衝區聲明為
    static char retbuf[20];
本方案並非完美, 尤其是有問題的函數可能會遞歸調用, 或者會同時使用到它的多個返回值時。

參見問題 7.7, 12.19 和 20.1

參考資料: [ISO, Sec. 6.1.2.4]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)