我想弄清楚如何增加指针的指针指向我想要的值。这本质上是一个指向cstrings的指针数组,我想增加指向xx指针的指针。对于我目前的应用程序的坚持,如果我想在第五指针我可以做点(指针被定义为char **pointer
)递增指针的指针
*pointer++;
*pointer++;
*pointer++;
*pointer++;
*pointer++;
,我现在就第五指针设置为*pointer[0]
这是我想要的。我只是想找一种方法来清理这个问题,希望能有一个班轮。我尝试过不同的方式来解决这个问题,但我还没有找到一个可行的解决方案。我的最后一次尝试是
*pointer += (sizeof(pointer) * 5);
但它没有工作。我认为如果我在系统上得到一个指针的大小(4字节),并将其乘以指针的数量,我希望跳过它,它会执行与垃圾邮件*pointer++
调用相同的操作。在我增加我的指针后,我使用以下命令打印剩余的cstrings,直到指针数组结束。
while(*pointer[0])
{
printf("data: %s\n", *pointer);
pointer++;
}
总的来说,我需要帮助将5 *pointer++;
呼叫转换为1班轮。
'* pointer ++;'不会做你认为它做的事。 Furhtermore,你不需要手动乘以sizeof(* p)';指针算术和编译器为你解决这个问题。 – 2012-12-22 18:45:56
'char * ptr = pointer + 5;'然后操作'ptr'? – fge