基本的に、リストと個別の2つのリンクリストがあります。以前に「リスト」構造体に保存された単語のセットがいくつかあります。個別/一意の単語を見つけて「個別」構造体に保存するプログラムを作成するつもりでした。これが、ポインターに関する私の概念に基づいて、これまでに得たものです。ただし、「distinct」を印刷しようとすると、プログラムがクラッシュします:(間違っている場合は修正してください。
struct list {
char string[50];
struct list *next;
};
struct distinct {
char string[50];
struct distinct *next;
};
void checkdistinct() {
list *ori = NULL;
distinct *copy = NULL;
distinct *check = NULL;
if(ori == NULL && copy == NULL) { //first time.
ori = ori->next;
copy = copy->next;
copy = (distinct*)malloc(sizeof(distinct));
strcpy(copy->string, ori->string);
ori = ori->next;
copy = copy->next;
}
else {}
while(ori!=NULL) {
check = check->next;
while(check != NULL) {
if(strcmp(ori->string, check->string)!=0) {
check = check->next;
}
else {
ori = ori->next;
check = NULL;
}
}
//only compare same casing words, for now.
copy = (distinct*)malloc(sizeof(distinct));
strcpy(copy->string, ori->string);
ori = ori->next;
copy = copy->next;
}
}
メインで印刷しようとすると、クラッシュします :( コードに追加のコメントが必要な場合は返信してください。ありがとう!