[ad_1]
As i said problem is in scanning N and M variables.
Change
scanf("%d %d",&N,&N);
to
scanf("%d",&N);
scanf("%d",&M);
and you are fine.
Problem was you were reading N twice while didnt read an M which was used uninitialized.
Non-static variables (local variables) are indeterminate. Reading them prior to assigning a value results in undefined behavior.
You should free all your allocated memory
for(i=0;i<N;i++)
{
free(A[i]);
}
free(A);
and dont cast malloc()‘s return value becouse
- Its reduntand
- Adding the cast may mask failure to include the header
stdlib.h, in which the prototype for malloc is found - If the type of the pointer is changed, one must fix all code lines where
malloc()was called and cast
Next time if you cannot find a bug, try to use debugger and look what exactly is happening, you can see variable values, where would you clearly see that M is uninitialized and didnt change after scanf().
[ad_2]
solved How to dynamically allocate memory in 2D array and store values? [closed]