当我用printf打印时,我得到不同的值。我尝试了很多来解决这个问题。但我没有得到如何解决这个问题 - 以下是几行代码 -
#Dymically allocated memory-
char **child = (char **)malloc(totalRows * sizeof(*child));
int i=0;
while ((row = mysql_fetch_row(res)) != NULL)
{
child[i] = (char *)malloc(strlen(row[1]) + 1);
child[i]=strdup(row[1]);
printf("%u %s \n", &child[i], child[i]);
i++;
}
int j=0;
for (j; j<i; j++)
printf("%u %s \n", &child[j], child[j]);
输出
7127200 1111
7127208 111111vv
7127216 111111sd
7127224 111111en
7127232 111113nk
7127240 111113t3
7127200 1111
7127208 1111 //..Here I am getting different value-
7127216 111111sd
7127224 111111en
7127232 111113nk
7127240 111113t3
答案 0 :(得分:0)
我会在这里尝试一些事情:
bzero孩子
remove child [i] =(char *)malloc(strlen(row [1])+ 1); //因为你已经使用strdup
分配了内存免费儿童[i]
char * child =(char * )malloc(totalRows * sizeof(char *)); // child是指向char *指针
数组的指针如果这对您有用,请告诉我