So im trying to create two dynamic arrays, one for holding reference points and the other for holding query points but i get this error: malloc(): corrupted top size Aborted (core dumped) I want to create 2 2D arrays with the same widths, row size doesnt matter but there should be at least one row.
double **createSyntheticReference(int rows, int columns)
{
int i,j;
// Dynamically allocate a 2D array
double **student = (double **)malloc(rows * sizeof(int *));
for ( i=0; i<rows; i++)
student[i] = (double *)malloc(columns * sizeof(int));
// load synthetic data
for(i=0; i<rows;i++) {
for(j=0; j<columns; j++) {
student[i][j] = rand()%100+1;
}
}
for(i=0; i<rows; i++) {
printf("%lf", student[i][0]);
for(j=1; j<columns; j++) {
printf("%17lf", student[i][j]);
}
puts("");
}
return student;
}
double **createSyntheticQuery(int columns)
{
int i,j;
int rows = 10;
// Dynamically allocate a 2D array
double **query = (double **)malloc(rows * sizeof(int *));
for ( i=0; i<rows; i++)
query[i] = (double *)malloc(columns * sizeof(int));
// load synthetic data
for(i=0; i<rows;i++) {
for(j=0; j<columns; j++) {
query[i][j] = rand()%100+1;
}
}
for(i=0; i<rows; i++) {
printf("%lf", query[i][0]);
for(j=1; j<columns; j++) {
printf("%17lf", query[i][j]);
}
puts("");
}
return query;
}
in my main i run this to try and create the 2 2d arrays:
double **student = createSyntheticReference(rows, columns);
double **query = createSyntheticQuery(columns);