- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メソッド間の文字列の受け渡し)
メソッド間の文字列の受け渡しについて
このQ&Aのポイント
- 初歩的な内容ですが、混乱してしまっているので、どなたか教えてください。
- 呼び元のメソッドで文字列を設定した文字列を呼び先subで取り出したいのですが、アドレスから文字列を取り出すにはどうすればいいのでしょうか?
- #メソッド #文字列 #受け渡し
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> アドレスから文字列を取り出すにはどうすればいいのでしょうか? そのアドレスが文字列の先頭を指しています。 void sub(char *abc) /* 文字列abcのアドレスをポインタとして値受け取り */ { printf("[%s]\n", abc); abc[0] = 'a'; // mainに戻れば "aBC" }
その他の回答 (1)
- wormhole
- ベストアンサー率28% (1626/5665)
回答No.2
>sizeof(abc) すれば、データ入っているサイズはわかりますが、今回は、たまたま配列長と中身のデータ一緒ですが 必ずNUL文字で終端であるなら strlen(abc) で調べられますけど。
質問者
お礼
回答ありがとうございました。 ご指摘のとおりNUL文字終端を想定していて。。。。結果が違ったので混乱してました。 例は簡単な文字列で質問しましたが、データの方を見直してみます。
お礼
回答ありがとうございます。助かりました。 お手すきであれば、追加の質問の方も宜しくお願いします。
補足
回答ありがとうございます。混乱してました。 質問が派生していまいますが、subでabcの全体の長さ(main関数で定義したchar abc[]="ABC"; ここでは3になりますが)を知る方法は有りませんよね? sizeof(abc) すれば、データ入っているサイズはわかりますが、今回は、たまたま配列長と中身のデータ一緒ですが