2011-12-14 7 views
0

私はいつも「サーバーのアップロードに失敗しました!以下のコード にあります。これはなぜですか/ P ...サーバーのアップロードに失敗しました

int rval = 28; 
char *return_str=NULL; 

return_str = strdup((rval!=28) ? ("Server Upload Failed!") : ("Server TimeOut Reached!")); 
printf(" return_str : %s\n", return_str); 

Output that iam getting is ====> Server Upload Failed! . I want to know why it is not giving 
"Server TimeOut Reached!" as output . 

プラットフォーム:Linuxでは、GCCコンパイラ

+4

予想通り、Ubuntuの、それは(出力: 'return_str:!サーバーのタイムアウトに達する')走るあなたが古いバージョンを実行していないことを確認していますか?あなたはきれいにして再構築しようとしましたか? – codeling

答えて

1

私はそれを余分に数回を読んでたら、それは、私には正しく見えます。後者の文字列( "Server TimeOut Reached")を生成するはずです。

あなたが今までだけではなく、直接リテラルを使用するのでは、静的な文字列にstrdup()を呼び出す必要があるだろう、なぜわかりません。 1つのケースは、私が推測するよりダイナミックな文字列が必要な場合があります。その値を受け取った人は、それが動的で所有権を取ると仮定します。 GCC 4.5.2で

関連する問題