1

我正在使用 C 尝试标记一个数组,然后将标记存储到一个全局字符串数组中。问题是我正在尝试使用指针来执行此操作,因此我不必重新引用字符串数组的索引。我知道数组应该有多大,这就是为什么使用索引很容易做到这一点,但是;我试图用指针来做到这一点。我不知道这是否可能,所以在这里纠正我。这是我尝试实现但未成功的代码..

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

            char *cPayload2[PARAMS];

    void ReadIn2(char *input)
    {
        //Initialize the pointer to the 
        char *PayloadPtr;
        //start the parse
        char *token = strtok(input, "#");
        //pointer to an array of strings(pointers to character arrays)
        PayloadPtr = &cPayload2[0];

        while(token != NULL)
        {

这是有问题的部分,我可以用这样的子句更改全局数组的索引吗?看来我无法用这个打印出有效载荷数组。

            *PayloadPtr = token;
            //increment the index that the ptr refrences
            PayloadPtr++;
            //tokenize again
            token = strtok(NULL, "#");
        }

    }



    int main(void)
    {

        char input[] = "jsiUjd3762BNK==#KOIDKKkdkdwos==";

        ReadIn2(input);

出于某种原因,此打印输出被伪造了

        printf("%s\n",cPayload2[0]);
        printf("%s\n",cPayload2[1]);

        return 0;
    }

任何提示将不胜感激。

4

1 回答 1

1
char *PayloadPtr;

应该

char **PayloadPtr;

除此之外,您的代码还可以。

于 2012-07-12T19:26:24.840 回答