结构和二次指针的初始化赋值情况
记录今天面临的二级指针初始化失败的问题。 申请和赋值辅助指针时,请注意正在访问哪个具体地址。 直接访问arr的是辅助指针,访问arr[i]的其实也是辅助指针。 (我的理解,访问) ) http://www.Sina.com/3358ww.Sina
不推荐使用此初始化方法。 编码建议之一是,资源的初始化和释放尽可能处于同一级别。
代码如下。
typedef struct {char name[10]; uint32_t size; } Example; intmallocandinitexample (example * * arr,uint32_t *size ) ) arr=(example* ) malloc (sizeof ) example ) ) 10 ); if(arr==null ) printf ) mallocerror! ' ); 返回- 1; (}*size=10; for(intI=0; i 10; I ) ) memcpy((*arr ) ) I ).name,' test ',strlrn ) ) test ) ); (arr ) [i].size=i; }返回0; }int TEST () {Example *arr=NULL; int 32 _ tsize if (mallocandinitexample (arr,size )!=0(返回- 1; (if ) arr==null ) {return -1; //此时,arr结构指针初始化为size个Exampleotherreturn 1; }