char型の変数の値をmain関数の中で定義して関数渡し、その度に関数の中で変数の値を再定義したいです。
下記のようなサンプルプログラムを作成したのですが、1回目に関数を呼び出した時、main関数の中で定義したchar型の変数を関数に渡すことができませんでした。
また、どういう訳か2回目に関数を呼び出した時は、main関数の中で定義したchar型の変数を関数に渡すことができました。
そこで以下の二点が知りたいです。
- 1回関数の呼び出しでmain関数の中で定義したchar型の変数を関数に渡すにはどのようにプログラムを記述すれば良いか
- 1回目の関数の呼び出しでは変数を関数に渡せなかったのに、2回目の関数の呼び出しでは変数を関数に渡せたのはどうしてなのか
よろしくお願いします。
サンプルプログラム
void str_changer( char **str); int main{ char str[10]; char* str_p; str_p = str; // 1回目 strcpy(str,"a") str_changer( &str_p ); // 2回目 strcpy(str,"b") str_changer( &str_p ); return 0; } void str_changer( char **str){ printf("before : %s\n", *str); strcpy(*str,"c"); printf("after : %s\n", *str); }
実行結果
before : after : c before : a after : c
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。