char * stft (const char *fmt, ...) {
va_list items;
char *out;
int magic = 0; // <-- here magic?
va_start (items, fmt);
vsprintf (out, fmt, items);
va_end (items);
return out;
}
使用像:奇怪的行爲
char *str = stft ("%s-%s %s", a, b, c);
這是工作的解決方案? 如果刪除未使用的「魔術」變量 - 我返回字符串後出現分段錯誤。 什麼做錯了?
$ GCC --version GCC(Debian的4.4.5-8)4.4.5
$ UNAME -a Linux的深站(擠)2.6.32-5-686#1 SMP週五5 10 08:33:48 UTC 2013 i686 GNU/Linux
與問題無關,但不應該有什麼東西來初始化'out'? – guest
@guest:與問題無關 - 問題恰恰在於'out'未初始化,因此發生崩潰。 –
不錯的偵探。謝謝 – guest