文本文件的每个单词的频率。分配内存时出错?

时间:2016-01-16 15:48:40

标签: c string pointers malloc

大家晚上好! 我已经开始用C语言中的字符串和指针搞乱了。 我想编写一个读取文本文件的程序,然后计算每个单词的频率并打印它。

我的变数是:

FILE *fp;
char *words[N] //N defined 100
int i=0, y=0;
int *freq;
int freq_count=0;;
int word_number=0;

代码部分:

for(i=0;i<word_counter;i++){
    while(y<word_counter){
         if(strcmp(words[i],words[y]==0){
             freq1++;
         } y++;
    }
    if(i==0){
         freq=(int*)malloc(sizeof(int));
         strcpy(freq, freq1); freq1=0;
    }
    else{
         freq=(int*)realloc(freq, (i+1)*sizeof(int));
         strcpy(freq, freq1); freq1=0;
    }
    y=0;
}

我遇到了几个错误运行...出了什么问题?  考虑到在单词[N]中我已经将每个单词放在每个单元格中。

提前谢谢大家。

1 个答案:

答案 0 :(得分:1)

也许另一个数组不是你想要的,但仍然比在循环中使用realloc和条件更好。

int freq[N];

for(i=0;i<word_counter;i++){
    freq1 = 0; 
    for(y=0;y<word_counter;y++){
        if(strcmp(words[i],words[y]==0)
            freq1++;
    }
    freq[i] = freq1;
}