Я 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");
}
Любая помощь будет высоко ценится!