2013-11-24 85 views
0

我创建了一个代码,根据行将文本中的句子转换为数组。 例如:指向字符串数组的指针数组

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

我需要每一行单独进去的话(我已经有一个准备功能,其这样做,并存储输出到一个char **阵列 我想用来存储字的所有阵列(在这种情况下 - 每个句子2,1),通过创建一个指向这些数组的指针数组。 我将非常高兴知道它是如何完成的。我还需要使用malloc创建一个临时数组并存储单词它,以便每次动态地创建阵列。

可以,我可以使用字符* a抛弃并存储在其中创建的数组?

我会更高兴的解决方案。

编辑: 我创建了一个内存分配阵列,但它不断改写自己:

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); 

外为,我得到

eitan 
eitanon 
eitanya 

而不是第一字(这意味着该温度不分配存储器)? 我会很乐意提供帮助。

+0

究竟是什么不清楚这样做? – StoryTeller

+0

我挣扎着2个主要的事情:第一个是创建数组:我有一个函数返回每行中的单词数(例如 - 4在句子[0] .i不知道如何创建一个临时数组和malloc它的大小为4个单元格为例,并在下一次运行 - 2个单元格(对于单词数量的句子[1])。我也不知道如何创建一个指向char **数组的指针数组。 – user3005945

+1

@ user3005945启用编译器错误并尝试编译您在问题中发布的代码 – this

回答

0

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

+0

好吧,但我不知道如何为每个新数组分配内存。当我像这样分配它时:Temp = malloc(Count('',Sentences [Note])* sizeof(char *)),它简单地覆盖现有的每一次。 – user3005945

+0

我会存储单词使用char **指针分配内存像这样:temp = malloc(numberofwords * sizeof(char *));发布你所有的代码将有助于更多。 – Veritas

+0

你没有包含code.my问题,char ** temp会一直覆盖自己的原因。 – user3005945