アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のような可変引数を扱うCのプログラムを書いたのですが、
vfprintfあたりでコアダンプするようです
可変引数の取り出し方が悪いのでしょうが原因が不明です。ご存じのかた教えてください。
void loglog( char *msg, ... )
{
va_list args;
char* message;
va_start( args, msg );
message = va_arg( args, char* );
vfprintf( stdout, message, args );
va_end( args );
}
main(){
int aa=4;
loglog( "aa=%d\n", aa );
}

A 回答 (1件)

★『vfprintf』関数の第2引数に『main』関数で指定しれいる『aa』変数を渡しています。


・これがエラーの原因でしょうね。→書式制御文字列の第1引数『msg』を渡せばいいのでは?

●解説
void loglog( char *msg, ... )
{
 va_list args;
 char* message;
 
 va_start( args, msg );
 message = va_arg( args, char* ); ←必要ない
 vfprintf( stdout, msg, args ); ←第2引数は『msg』でいいんじゃないの?
 va_end( args );
}
以上。おわり。
    • good
    • 0
この回答へのお礼

さっそくの完璧な返答ありがとうございます。
修正して実行し確認できました。
ありがとうございます。

お礼日時:2007/02/20 22:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!