动态初始化指针指针

时间:2011-03-16 15:02:56

标签: pointers dynamic initialization double

HII,

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

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

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

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

所以i =查询中没有条件

//我将它设置为NULL的最后一项did为malloc语句中的原因(i + 1)..

//以下是COND的声明......

               struct condition **COND;

//初始化COND

               SQL_INS->s.COND = malloc((i+1)*sizeof(struct condition *));

//执行此操作后,初始化变量COND的各个元素,如此

以便每个都指向一个新的结构对象

               SQL_INS->s.COND[j] = malloc(sizeof(struct condition));

我只是想知道这是做正在做的事情的正确方法......或者是更好的方式......

谢谢...... :)

1 个答案:

答案 0 :(得分:0)

请正确拼写,让你的问题更加清晰,你不会得到这样的答案......

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;

这将所有内存保留在一个块中,而不是为每个struct条件mallocing单独的块。我认为这可能会使你的代码更具可读性,为什么我这样做了:))