I need to do a simple thing, which I used to do many times in Java, but I\'m stuck in C (pure C, not C++). The situation looks like this:
int *a;
void initA
You are assigning arr
by-value inside initArray
, so any change to the value of arr
will be invisible to the outside world. You need to pass arr
by pointer:
void initArray(int** arr) {
// perform null-check, etc.
*arr = malloc(SIZE*sizeof(int));
}
...
initArray(&a);
You need to adjust the *a pointer, this means you need to pass a pointer to the *a. You do that like this:
int *a;
void initArray( int **arr )
{
*arr = malloc( sizeof( int ) * SIZE );
}
int main()
{
initArray( &a );
return 0;
}