Hi,

I'm trying to make array of struct and I don't get where is my mistake.

can you help me please?

This is the code:

Code:

typedef struct{
int i_index;
int j_index;
int value;
}index_s;
int index_sum(int** arr, int rows, int cols, index_s** ans_arr){
int i;
int j;
int ans = 0;
int arr_i = 0;
for(i=0; i<rows; i++){
for(j=0; j<cols; j++){
if ((i+j) == arr[i][j]){
ans++;
}
}
}
*ans_arr = (index_s*)malloc(ans*sizeof(index_s));
for(i=0; i<rows; i++){
for(j=0; j<cols; j++){
if((i+j) == arr[i][j]){
ans_arr[arr_i]->i_index = i;
ans_arr[arr_i]->j_index = j;
ans_arr[arr_i]->value = arr[i][j];
arr_i++;
}
}
}
return ans;
}
void third_main(){
int** arr;
index_s* ans_arr;
int rows, cols;
int num_of_sums;
printf("Enter number of rows: ");
scanf("%d",&rows);
printf("Enter number of cols: ");
scanf("%d",&cols);
arr = alloc_matrix(rows, cols);
num_of_sums = index_sum(arr, rows, cols, &ans_arr);
printf("i=%d\t j=%d\t value=%d\n", ans_arr->i_index, ans_arr->j_index, ans_arr->value);
}

Thank you