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 に答える