Pointers 动态初始化指向指针的指针

Pointers 动态初始化指向指针的指针,pointers,dynamic,initialization,double,Pointers,Dynamic,Initialization,Double,嗨 m初始化指向指针的指针,如下所示: //i=指针将指向的项目数 m计算sql查询中存在的条件数并存储这些条件 结构中的条件(结构条件) 因此i=查询中的条件数量 //我将其设置为NULL的最后一项是malloc语句中的why(i+1) //以下是条件声明 struct condition **COND; //COND的初始化 SQL_INS->s.COND = malloc((i+1)*sizeof(struct condi

m初始化指向指针的指针,如下所示:

//i=指针将指向的项目数

m计算sql查询中存在的条件数并存储这些条件

结构中的条件(结构条件)

因此i=查询中的条件数量

//我将其设置为NULL的最后一项是malloc语句中的why(i+1)

//以下是条件声明

               struct condition **COND;
//COND的初始化

               SQL_INS->s.COND = malloc((i+1)*sizeof(struct condition *));
//完成此操作后,我将初始化变量COND的各个元素,如下所示

这样每个都将指向一个新的结构对象

               SQL_INS->s.COND[j] = malloc(sizeof(struct condition));
我只想知道这是做我正在做的事情的正确方法吗。。还是有更好的方法


谢谢……)

请拼写正确,让你的问题更清楚一点,这样你就不会得到答案了

SQL_INS->s.COND = malloc(((i+1)*sizeof(struct condition *))+(i*sizeof(struct condition)))
struct condition **ptr = SQL_INS->s.COND;
struct condition *cur = (struct condition *)(ptr+i+1);
int j = 0;
for( ; j<i; j++)
  *(ptr+j) = cur++; 
*(ptr+j) = NULL;
SQL\u-INS->s.COND=malloc((i+1)*sizeof(struct-condition*)+(i*sizeof(struct-condition)))
结构条件**ptr=SQL\u INS->s.COND;
结构条件*cur=(结构条件*)(ptr+i+1);
int j=0;

对于(;jYup,你是对的,连续分配内存对于可读性来说会更好..所以我们所做的是正确的,我的意思是没有其他方法可以解决这个问题..无论如何,谢谢..确实有帮助..。)这样做也会使释放内存变得更容易。只要释放一个指针--free(SQL_INS->.COND)--它指向的所有结构都会被蒸发掉。。。只需确保首先释放结构中的所有malloced内存。