【发布时间】:2022-01-23 21:29:21
【问题描述】:
我在 Linux 上构建了一个 C 项目,当我尝试在 Windows 上执行它时,它不起作用。你能帮我找到解决方案吗?
Error message in my Machine
当我尝试调试时,我在这里发现了一个问题,它卡在了这个 while 循环中
我们主要调用函数init_dicContexte()
#include <stdlib.h>
#include <string.h>
#include "liste_mots.h"
#include "liste_freq.h"
#include "dict_contexte.h"
int main(void) {
char* texte;
FILE* fichier;
if ((fichier = fopen("Jane_Austen_Emma2.txt", "r"))==NULL)
raler("fopen");
if(fseek( fichier , 0L , SEEK_END))
raler("fseek");
long taille_fichier = ftell(fichier);
rewind(fichier);
texte = calloc(1, taille_fichier+1);
if (texte == NULL){
fclose(fichier);
raler("calloc");
}
if(fread(texte, taille_fichier, 1, fichier)!=1){
fclose(fichier);
free(texte);
raler("fread");
}
dictContexte mon_dict = init_dictContexte(texte);
afficher_dict(mon_dict);
genererTexte(mon_dict, 15);
free(texte);
return 0;
}
init_dictContext() 就是这样
dictContexte init_dictContexte(char* t) {
int i = 0;
listeFreq liste_freq = frequencesDe(t);
_listeFreq freq_cour = liste_freq.liste;
// allocation de l'espace mémoire
dictContexte nouv_dict = malloc(sizeof(struct a_dictContexte));
dictContexte contexte_cour = nouv_dict;
printf("Creation du dictionnaire de contexte..\n");
while (freq_cour->freq_suivante!=NULL && k <2) {
i++;
contexte_cour->contexte = contexte(t, freq_cour->mot);
strcpy(contexte_cour->mot, freq_cour->mot);
dictContexte nouv_contexte = malloc(sizeof(struct a_dictContexte));
strcpy(nouv_contexte->mot, "\0");
contexte_cour->suivant = nouv_contexte;
// ajout d'un contexte
contexte_cour = nouv_contexte;
freq_cour = freq_cour->freq_suivante;
}
nouv_dict->taille = i;
detruit_liste_freq(liste_freq.liste);
return nouv_dict;
}
【问题讨论】:
-
帮助我们帮助您 - 请将您的代码分享为格式化文本,而不是屏幕截图
-
请不要显示文字图片。显示文本本身(包括错误消息)。
-
当您寻求帮助时,请不要发布屏幕截图或照片。将文本直接剪切并粘贴到消息中。为什么? 1.人们更容易阅读。 2.它允许阅读它的人剪切和粘贴文本,从而更容易解决您的问题。 3. 使其可搜索,以便将来有人在谷歌搜索信息时可以找到此线程。 4. 屏幕阅读器无法阅读图片,这限制了我们社区中某些人的访问。