在C中用单独的函数初始化指针我需要做一件简单的事情,我曾经在Java中做过很多次,但是我被困在了C(纯C,而不是C+)中。情况如下:int *a;void initArray( int *arr ){
arr = malloc( sizeof( int ) * SIZE );}int main(){
initArray( a );
// a is NULL here! what to do?!
return 0;}我有一些“初始化”函数,它应该为一些分配的数据指定一个给定的指针(不重要)。如果要修改指向这个指针的指针,那么我应该如何给出一个函数的指针,然后在代码中进一步使用(在函数调用返回之后)?
3 回答

一只甜甜圈
TA贡献1836条经验 获得超5个赞
int *a;void initArray( int **arr ){ *arr = malloc( sizeof( int ) * SIZE );}int main(){ initArray( &a ); return 0;}

临摹微笑
TA贡献1982条经验 获得超2个赞
arr
initArray
arr
arr
void initArray(int** arr) { // perform null-check, etc. *arr = malloc(SIZE*sizeof(int));}...initArray(&a);

沧海一幻觉
TA贡献1824条经验 获得超5个赞
int *initArray(size_t s) { return malloc(sizeof(int) * s); }
int *arr = initArray(SIZE);
- 3 回答
- 0 关注
- 471 浏览
添加回答
举报
0/150
提交
取消