I have an arrFillRandom
function which fill an array with random numbers and prints it out. Here it is:
void arrFillRandom(int *arrayPtr, int sizeRow, int sizeColumn, int randomRange) {
int i, j;
arrayPtr = malloc(sizeof(int) * sizeRow * sizeColumn);
for (i = 0; i < sizeRow; i++)
for (j = 0; j < sizeColumn; j++)
(arrayPtr + i)[j] = (rand() % randomRange);
for (i = 0; i < sizeRow; i++) {
printf("\n");
for (j = 0; j < sizeColumn; j++)
printf("%d\t", (arrayPtr + i)[j]);
}
}
And here is my main
:
int main() {
void arrFillRandom(int *arrayPtr, int sizeRow, int sizeColumn, int randomRange);
int matrix1[2][3];
int matrix2[3][2];
int *ptr1, *ptr2;
ptr1 = &matrix1[0][0];
ptr2 = &matrix2[0][0];
arrFillRandom(ptr1, 2, 3, 10);
arrFillRandom(ptr2, 3, 2, 10);
printf("\n%d", ptr1[0]);
return 0;
}
My problem is that ptr1
or ptr2
doesn't point to array which arrFillRandom
filled before.
In arrFillRandom
function, I print out the matrix with random numbers. For example:
1, 0, 9 // first row of first matrix
0, 9, 4 // second row of first matrix
8, 2 // first row of second matrix
2, 5 // second row of second matrix
5, 5 // third row of second matrix
But in main
, when I want to print first element of this matrix:
printf("\n%d", ptr1[0]);
This line should print 1, but it prints irrelevant number such as 4096.
So why I couldn't store that matrix in this array?