【发布时间】:2012-12-22 18:42:53
【问题描述】:
我试图弄清楚我将如何增加一个指针指针以指向我想要的值。这本质上是一个指向 cstrings 的指针数组,我想增加指针以指向 xx 指针。为了坚持我当前的应用程序,如果我想指向我可以做的第五个指针(指针定义为char **pointer)
*pointer++;
*pointer++;
*pointer++;
*pointer++;
*pointer++;
它现在将第五个指针设置为我想要的*pointer[0]。我只是在寻找一种方法来把它清理成一个 1 班轮。我尝试了不同的方法来解决这个问题,但我还没有找到一个可行的解决方案。我最后一次尝试是
*pointer += (sizeof(pointer) * 5);
但它不起作用。我认为如果我在系统上获得一个指针的大小(4 个字节)并将其乘以我希望跳过的指针的数量,它会做与*pointer++ 调用的垃圾邮件相同的事情。在我增加我的指针后,我使用以下内容打印其余的 cstrings,直到遇到指针数组的末尾。
while(*pointer[0])
{
printf("data: %s\n", *pointer);
pointer++;
}
总的来说,我需要帮助将 5 个 *pointer++; 电话变成 1 个班轮。
【问题讨论】:
-
*pointer++;不会像您认为的那样做。此外,您无需手动乘以sizeof(*p);指针算术和编译器会为你解决这个问题。 -
char *ptr = pointer + 5;然后操纵ptr呢?