C言語関係掲示板

過去ログ

No.292.二次元配列を関数に渡す

[戻る] [ホームページ]

No.1755

二次元配列について
投稿者---baba-(2002/06/20 09:31:33)


二次元配列を定義したとき
char a[3][3];
ポインタを使い関数に渡すときにaでは渡せませんa[0]なら渡せるのですが、どちらとも配列の先頭を指していると思うのですが。誰か教えてください。


No.1758

Re:二次元配列について
投稿者---snow(2002/06/20 14:29:50)


>二次元配列を定義したとき
>char a[3][3];
>ポインタを使い関数に渡すときにaでは渡せませんa[0]なら渡せるのですが


ども、snowです。
ソースが載っていないので、状況がよく判りませんが、
恐らく仮引数に問題があるのではないでしょうか?
実引数と仮引数の型が違うとエラーが出ます。

以下にちょっとしたサンプルを作ってみました。
参考になるか解りませんが。

#include<stdio.h>

void func(char *a){
         printf("%s\n",a);
}

void func2(char b[][4]){
         printf("%s\n",b);
}

void func3(char **c){
         printf("%s\n",*c);
}
void func4(char *c[]){
         printf("%s\n",*c);
}

void func5(char *d){
         printf("%s\n",d);
}


int main(){
         char a[]={"abc"};
         char b[][4]={"def","ghi","jkl"};
         char *c[]={"mno","pqrs"};
         char d[3][3]={"tu","vw","xy"};
         func(a);
         func2(b);
         func3(c);
         func4(c);
         func5(d[0]);

}


No.1759

Re:二次元配列について
投稿者---baba-(2002/06/20 16:33:15)

ありがとうございました。なぞがとけました。