在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 回答
![?](http://img1.sycdn.imooc.com/56fb3e3d0001a10301000100-100-100.jpg)
一只甜甜圈
TA贡献1836条经验 获得超5个赞
int *a;void initArray( int **arr ){ *arr = malloc( sizeof( int ) * SIZE );}int main(){ initArray( &a ); return 0;}
![?](http://img1.sycdn.imooc.com/5458477300014deb02200220-100-100.jpg)
临摹微笑
TA贡献1982条经验 获得超2个赞
arr
initArray
arr
arr
void initArray(int** arr) { // perform null-check, etc. *arr = malloc(SIZE*sizeof(int));}...initArray(&a);
![?](http://img1.sycdn.imooc.com/5458477f0001cabd02200220-100-100.jpg)
沧海一幻觉
TA贡献1824条经验 获得超5个赞
int *initArray(size_t s) { return malloc(sizeof(int) * s); }
int *arr = initArray(SIZE);
- 3 回答
- 0 关注
- 465 浏览
添加回答
举报
0/150
提交
取消