関数が変数を使用した直後に、変数を使用して消去しようとしています。基本的に、私はstr1 + str2を実行し、関数で使用してからメモリを解放します。私はすべてがまっすぐになっていると思いましたが、私のコードは警告とエラーをスローします:
- エラー:「commande」の再定義。
- 警告:関数'malloc'の暗黙の宣言[-Wimplicit-function-declaration]
- 警告:組み込み関数'malloc'の互換性のない暗黙の宣言[デフォルトで有効]
- 警告:関数'free'の暗黙の宣言[-Wimplicit-function-declaration]
- 警告:組み込み関数'free'の互換性のない暗黙の宣言[デフォルトで有効]
前述のコードは次のとおりです。
// Step 1
char* commande = (char*) malloc(len1 + len2 + 1);
strcpy(commande, str1);
strcat(commande, str2);
function(commande);
free(commande);
// Step 2
char* commande = (char*) malloc(len3 + len4 + 1);
strcpy(commande, str3);
strcat(commande, str4);
function(commande);
free(commande);
私は何が間違っているのですか?
編集:len2のタイプミスを修正しました。