1

グローバル変数 (matrix[]) を処理しようとしています。

私の最初の質問は: 2 つのインデックス ([x][x]) を持つ配列とは何ですか? 私の 2 番目の質問は次のとおりです。matrix[] のすべての要素を「O」に割り当てようとしていますが、うまくいかないようです。

#include <stdio.h>

char matrix[4][10];

void initialize()
{
    matrix[4][10] = {{'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'},
                     {'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'},
                     {'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'},
                     {'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O'}};

}

int main(void)
{

} 

このコードで次のエラーが発生します。

error: cannot convert '<brace-enclosed initializer list>' to 'char' in assignment
4

4 に答える 4

0

M x N以下のコードを試して、実行時に可変サイズの行列を初期化できます。

int **Create(int M , int N) // `M` & `N` are dimensions of the matrix 
{
    int **a, i, j;
    a = (int **)malloc(M * sizeof(int *));   // Create array of pointers

    for (i = 0; i <= M-1; i++) // Create `M` rows, there addresses are stored in array
         a[i] = (int *)malloc(N * sizeof(int));
    return a; // return address of the matrix
 }

マトリックスが作成されたら、以下のように要素を初期化できます。

for(i = 0; i <= row - 1; i++)
  for(j = 0; j <= col - 1; j++)
     scanf("%d", &a[i][j]);   // Read a[i][j]
于 2013-11-04T11:47:36.757 に答える