Mail Archives: djgpp/1998/06/16/23:10:52
Peter Danielsson wrote:
>
> Why does my program crash all the time. It's a simple program, only a
> few lines:
>
> int WIDTH=513;
> int *mapheight;
>
> void initmapheight(int *n)//allocateing memory
> {
> n=(int*)calloc((long)513*513,sizeof(int));
> if(n==NULL)
> exit(-1);
> }
You allocates n in this function but it do not change the parameter
pointer outside of the function.
do:
void initmapheight(int **n)//allocateing memory
{
*n=(int*)calloc((long)513*513,sizeof(int));
if(*n==NULL)
exit(-1);
}
or much better:
int *initmapheight()//allocateing memory
{
int *n=(int*)calloc((long)513*513,sizeof(int));
return n;
}
and test for NULL value.
> void reset(int *m,int W2)//set to zero. Here it crashes
> {
> for(int a5=0;a5<W2;a5++)
> for(int q=0;q<W2;q++)
> m[(long)a5*W2+q]=0;
> }
> void main(int argc, char *argv[])
> {
> initmapheight(mapheight);
> reset(mapheight,100);
> }
--
^ ^ ^
| | |
+-+-+ Fabrice ILPONSE
| email: fabrice AT asim DOT lip6 DOT fr
|
|
-
- Raw text -