指向字符串数组的指针数组

时间:2013-11-24 18:28:00

标签: c arrays malloc

我创建了一个代码,根据行将句子从文件传输到数组中。 例如:

char ** Sentences[2]
Sentences[0]="hello ola hiya howdy"
Sentences[1]="chips fries"

我需要将每一行分成单词(我已经有一个就绪函数来执行此操作,并将输出存储到char **数组中。 我想通过创建指向这些数组的指针数组来存储所有单词数组(在本例中为每个句子为2,1)。 我将非常高兴知道它是如何完成的。我还需要使用malloc创建一个临时数组并存储其中的单词,以便每次都动态创建数组。

可能的是,我可以使用char * 数组并存储在其中创建的数组吗?

我将非常乐意寻求解决方案。

编辑: 我创建了一个内存分配数组,但它一直在覆盖自己:

char ** Temp=NULL;
         char **pointer[ir];

         for (Note = 0; Note < ir; ++Note) {
             Temp=malloc(Count(' ',Sentences[Note])*sizeof(char *));
                     int ifd=StoreArr(Sentences[Note],Temp," ");
                    pointer[Note]=&Temp;
                    printer(*(pointer[Note]),ifd);

         }

我得到的输出是:

您好 OLA 你好 你好 埃坦 eitanon eitanya

但如果我打电话

printer(*(pointer[0]),3);

在for之外,我得

 eitan
eitanon
eitanya

而不是第一个单词(这意味着Temp不分配内存)? 我将非常乐意提供帮助。

1 个答案:

答案 0 :(得分:0)

对于一个句子,你只需要一个char指针或一个char指针数组来存储多个句子。