
目的
二次元配列とダブルポインタを用いてコンソールに
cmd
11 22 33 44 55 66
という数列を出力する処理を作成するにあたって
下記の失敗例と成功例の2つのプログラムを作成しました。
ポインタのポインタ=ポインタの配列ならば失敗例のコードでも動くはずです。
しかし動きません...コンパイルエラーはありませんでしたがフリーズします。
おそらく外部参照を起こしてるなとは思いますが失敗例と成功例の違いが判らないので
その違いをご教授していただけたらなと思い、投稿させていただきました。
どうかよろしくお願いいたします。
失敗例
c
1#include<stdio.h> 2 3int main(void){ 4 5 int a[2][3] = {{1,2,3},{4,5,6}}; 6 int **pa = a; 7 8 int i,j; 9 for(i=0;i<2;i++){ 10 for(j=0;j<3;j++) printf("%d\n",pa[i][j]); 11 } 12 13 getch(); 14 return 0; 15}
成功例
c
1#include<stdio.h> 2 3int main(void){ 4 5 int a[2][3] = {{1,2,3},{4,5,6}}; 6 7 int i,j; 8 for(i=0;i<2;i++){ 9 for(j=0;j<3;j++) printf("%d\n",a[i][j]); 10 } 11 12 getch(); 13 return 0; 14}

回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/12/31 10:57