Почему мы не можем получить доступ к 2D-массиву как к 1D-массиву? Как я могу получить доступ?
Функция массива:
int **combination(int no)
{
int i,j,c=0;
static int arr[100][2];
for(i=0;i<=no;i++){
for(j=0;j<=no;j++){
if(((i+j)==no)){
arr[c][0]=i;
arr[c][1]=j;
c++;
}
}
}
return arr;
}
Основная функция:
int main() {
int n,k,i;
int **arr;
int size=10;//let us assume.
scanf("%d %d", &n, &k);
fprintf(stderr, "1\n");
arr=combination(n);
fprintf(stderr, "2\n");
for(i=0;i<size;i++){
printf("%d-%d",arr[i][0],arr[i][1]);
}
return 0;
}
Показывает:
.c:29:8: warning: return from incompatible pointer type [-Wincompatible-pointer-types]
return arr
и ядро ошибки сегментации сброшено.
Можете ли вы предложить, какой тип указателя вызывать для доступа к элементу из этого 2D-массива?