課題でC言語で二次元配列を使っていて、関数の受け渡しについて分からなくなったのでご質問いたします。
一部のみ、かいつまんでご説明いたします。
C
1#define FILES 8 2#define CMD_NAME 256 3 4void my_ls(char all_dir[FILES][FILE_NAME]); // 関数のプロトタイプ宣言 5 6void main(int argc, const chat *argv[]) { 7 all_dir[FILES][FILE_NAME] 8 9 /* 10 ここでchar型の二次元配列にデータを格納する。 11 */ 12 13 my_ls(all_dir[0]) // all_dir[][]をこの関数に渡したい 14} 15 16static void my_ls(char *all[FILES][FILE_NAME]) { 17 ... 18}
私は以上のようにしましたが、Segmentation falutがでて処理ができませんでした。
コンパイル時に以下のようなwarningも出ていましたし、それが原因だと考えています。
est.c:80:22: warning: passing argument 1 of ‘my_ls’ from incompatible pointer type [-Wincompatible-pointer-types ] my_ls(all_dir[0]); ~~~~~~~^~~
つたない説明ですが、叶えたいのは文字列の二次元配列の受け渡しです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/21 10:42