I have a program that reads a 2d array from a file, and makes it a jagged array (where each row is sized perfectly to fit all non-zero elements). Then it prints the array out.
But I have a couple issues I can't figure out.
Specifically
26: I get a warning (assignment makes integer from pointer without cast
44: error: subscripted value is neither array not pointer
What can I do to fix it?
int main() {
FILE *inputFile1 = fopen("denseMatrix1.txt", "r");
char inputBuffer[SIZE];
int dim1, dim2, input, i, j;
int *mtrx1;
fgets(inputBuffer, SIZE, inputFile1);
sscanf(inputBuffer, "%d%d", &dim1, &dim2);
mtrx1 = malloc(sizeof(int *) * dim1);
for (i=0; i<dim1; i++) {
int cols=0;
int *row = malloc(sizeof(int) * cols);
fgets(inputBuffer, SIZE, inputFile1);
for (j=0; j<dim2; j++) {
sscanf(inputBuffer, "%d", input);
printf("i=%d j=%d input=%d\n", i, j, input); // ADDED LINE (NOT PRINTING)
if (input) {
cols++;
row = realloc(row, sizeof(int) * cols);
row[cols-1] = input;
}
}
mtrx1[i] = row;
cols=0;
}
int mtrx3[DIM1][DIM2] = {0};
// Prints first 2 matrices
printf("First matrix: \n");
printMatrix(mtrx1, dim1);/*
return 0;
// Prints a 2d array matrix
void printMatrix(int *mtrx, int dim1) {
int i, j;
for (i=0; i<dim1; i++) {
for (j=0; j<(sizeof(mtrx[i]) / sizeof(int)); j++) {
printf("%d ", mtrx[i][j]);
}
printf("\n");
}
printf("\n\n");
Contents of file denseMatrix1.txt:
7 8
0 0 0 5 1 0 0 5
0 0 0 0 0 0 0 0
0 0 0 0 1 2 0 0
1 0 0 0 0 0 0 0
3 0 0 5 0 0 3 0
1 0 0 0 0 3 0 0
0 0 0 0 0 0 0 1