I tried to create a multidimensional array dynamically in C but I am getting a segmentation fault!
int **arr=malloc(sizeof(int*) *row);
printf("&ar:r%d arr:%d %d\n\n",*arr,arr,arr[0]);
for(i=0;i<row;i++){
*(arr+i)=malloc(sizeof(int)*col);
printf("row: %d",arr[i]);
}
printf("\nbase arr: %d",&arr[0][0]);
I checked out address of row and allocated memory as required for total elements in column. But still when I access it arr[i][j] it shows different address [That's why sigsegv].
for(i=0;i<row;i++){
for(j=0;j<col;j++){
arr[i][j]=0; //this point
}
puts("done");
}
AFAIK, somearr and &somearr is same for 1 dimensional array.
Here it gives arr[0] and *arr address of row 0. but what is arr? why is it different?
[I checked other related questions in Stack Overflow but I don't have those problems and can't solve this still.]
Any references or links to study the concept will be great.