2011-10-18 26 views
-2

私は1次元配列を持って、私は2次元配列に情報を格納することができますどのように、...みんなを助けるため1次元配列から2次元配列に情報をコピーする方法は?

for (y=0; y<gar; y++) 
{ 
for (l=0; l<kk; l++)          
for(k=0; k<kk; k++) 
mas[l][k]=arr[y];    {Probably problem is in this line, I don't know the right way to switch information... 
printf("%d",mas[l][k]); 
getch(); 

おかげで私は、次のコードを試してみましたが、それは正常に動作しません。.. 。さてあなたは、メモリに正しい方法が割り当てられている、XDIMとYDIMサイズを有する2次元配列の線形インデックス「i」は

ように計算することができることをI = X + Yの*のXDIMを想定

+1

完全なコードを投稿してください...開いた括弧とインデントの悪い部分があります。 –

+0

あなたがここに投稿したものはコンパイルされることはありませんが、あなたは 'mas'のすべてのフィールドに各' arr [y] 'を書いていると思います。最終的に 'mas'のすべてのフィールドに' arr [gar - 1] 'が含まれます。あなたがしたいと思うのは、(l、k)ペアのy値へのマッピングです。私が見ていることから、あなたはyについて 'for'を残し、' y = l * kk + k; 'を設定すべきだと思います。 – Nobody

答えて

3

。 MAS」という仮定の下

for(y=0; y < YDIM; ++y) { 
    for (x=0; x < XDIM; ++x) { 
    mas[x][y] = arr[x+y*XDIM]; 
    } 
} 

:だからあなたの1次元配列は、あなたがこのようなループを使用する2次元配列に変換し

を(つまり、より良いあなたのデータをフィットする場合はもちろん、あなたは順序を変更することができます) "は[XDIM] [YDIM]のサイズを有し、" arr "はXDIM * YDIMのサイズを有する。