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));
我只是想知道这是做正在做的事情的正确方法......或者是更好的方式......
谢谢...... :)
答案 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单独的块。我认为这可能会使你的代码更具可读性,为什么我这样做了:))