1
typedef struct{
       int rows, cols;    // matrix dimensions
       int **element;     // element array
}Matrix;

変数を作成する場合:

Matrix m;

で 3x3 {{1,2,3},{4,5,6},{7,8,9}} 配列を作成するにはどうすればよいMatrixですか? さらに言えば、任意のサイズの 2 次元配列を m.element に格納するにはどうすればよいでしょうか?

私が試してみました:

for (i=0; i<m.rows; i++)
{
    for (k=0; k<m.cols; k++)
    {
        m.element=q;
        q++;
    }
}
4

3 に答える 3

0

コメントのアドバイスに従い、Dynamic Allocation of 2D Arrayを見てください。

それからする

for (i = 0; i < m.rows; i++) {
  for (j = 0; j < m.cols; j++) {
    m.element[i][j] = q++;
  }
}

m.element[i][j]機能させるには、その部分を追加する必要があります。

于 2013-12-05T02:11:48.467 に答える
0

ただし、2 次元配列を格納するためにポインターからポインターを使用するべきではありませんが、次のようなことができます。

m.element = malloc(sizeof(int*)*3);
for (int j=0;j<3;++j)
{
    m.element[j] = malloc(sizeof(int)*3);
}
于 2013-12-05T02:20:05.723 に答える