Initializing a pointer in a separate function in C

后端 未结 2 1715
刺人心
刺人心 2020-11-22 10:42

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         


        
2条回答
  •  隐瞒了意图╮
    2020-11-22 11:24

    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);
    

提交回复
热议问题