No. | 質問・回答 | おれい |
|
[115420] C言語、シェルについて |
|
|
ある関数内でポインタ型の配列、たとえばchar *buf [5]; の中にそれぞれ文字列が入っていて、これを別の関数にリターンしたいのですが、うまくいきません。どのようにすれば可能でしょうか。ポインタのポインタ ** でリターンするのではないかと思いますが、いまいちうまくいきません。理解できていらっしゃる方教えていただけないでしょうか。お願いします。
ねこじゃらC (未登録) 2009年6月18日21:17
|
|
|
|
[115487] |
void main()
{
char *buf[5];
func(buf);
printf(buf[0]);
}
void func(char *buf[])
{
buf[0] = "Hello World!";
}
配列は参照渡しなので、関数内での変更がそのまま反映されます。
ミッキ (未登録) 2009年6月23日05:31
|
|
|
|
[115490] |
>配列は参照渡しなので
細かいことですが、厳密な言い方じゃなかったです。
「配列の要素は参照渡しと同じようになってしまう」ということです。
ミッキ (未登録) 2009年6月23日05:58
|
|
|
|
[115537] |
>ある関数内でポインタ型の配列、たとえばchar *buf [5]; の中にそれぞれ文字列が入
>っていて、これを別の関数にリターンしたいのですが
質問の意図が今ひとつ分かりません。
C言語では関数は呼び出し元へしかリターンすることは出来ません。
任意の位置へ行きたい場合はlongjump() setjump()を利用する必要があります。
ちなみにC言語に「参照渡し」というものはありません。
*言いたいことは分かりますので重隅のようですが、厳密を期されているようですので。
へろり (未登録) 2009年6月26日12:01
|
|
|
|
( 参照数:1246 日平均:0.2 ) |
|
〜 回答の受付を終了しました 〜 |