You are incrementing the address of the passed pointer ptr, instead of the pointer itself.
The line *( ptr + i ) = a;
is wrong. It should be (*ptr)[i] = a;
Also pass the address of the pointer in main
int n, *p;
n = Load_Matrix( &p );
And the line fscanf( fp, "%d", n );
is wrong. fscanf() need an address of n.
And a number of small errors are still present, like function prototype for Load_Matrix(), int main( void ), check all return values