私は正しい答えを知っていると思う次のパズルがありますが、1つの問題もあります。見てください:
Sample Code
void printTime( time_t *t )
{
????
}
???? を置き換えることができるのは、次のうちどれですか。上記のコードで、 t に渡された時間を人間が読める形式で出力しますか?
:
char s[ 100 ]; ctime( t, s ); printf( "%s\n", s );
:
printf( "%s\n", ctime( t ) );
:
printf( "%s\n", asctime( t ) );
:
printf( "%s", t );
:
char *s = ctime( t ); printf( "%s\n", s ); free( s );
私の答えは答え 2 です (関数 ctime は入力として time_t ポインターを取り、printf で出力できる文字列へのポインターを返します)。
回答 5 のコードはコンパイル時に同様に機能しますが、以前にストレージが割り当てられていないのになぜ free() を使用するのでしょうか? それが答え5が間違っている理由だと思いますか?
ありがとう、プレゼメク