Как увеличить значение в структурной матрице в c? - PullRequest
0 голосов
/ 23 мая 2019

Я calloc'd корреляционную матрицу в структуре, но не могу увеличить / установить значения в этой матрице.Структура выглядит так:

typedef struct matrixStruct{
    char** word;
    int numberOfWords;
    int** matrix;
} matrix;

Вот как я выделил структуру, используя calloc.Я использовал calloc, потому что хотел бы, чтобы все значения в матрице были равны 0.

//Allocate rows of matrix
wordStore->matrix = calloc(2000,sizeof(int*));
//Allocate columns of matrix
for(int j = 0; j< 2000; j++)
{
    wordStore->matrix[j] = calloc(2000,sizeof(int*));
}

Предположим, у меня есть массив, который имеет значения

int reference [] = {20,400,5,1899};

И этокак я пытаюсь назначить / увеличить значения в матрице, но это не похоже на работу.

for(int k = 0; k<lenReference; k++)
{
    for(int l = 0; l<lenReference;l++)
    {

        wordStore->matrix[k][l] += 1;

        if(k == l){

            wordStore->matrix[k][l] = 0;

        }
    }

}

Это цикл печати, который я использую, и когда я запускаю файл, онесть ошибка, которая говорит, что «подписанное значение не является массивом, указателем или вектором», но я подумал, что это был правильный способ напечатать 2d массив.В чем проблема с этим отпечатком?

for(int i = 0; i<2000; i++)
    {
        for (int j = 0; j<2000; j++)
        {
            printf("%08d ", words.matrix[i][j]);
        }
        printf("\n");
    }

Любая помощь будет высоко ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...