ユーザーが入力した検索語を、リンクリスト内のいくつかの名前と比較しようとしています。strcmpでのsegfaultingであることは確かですが、strcmpでのsegfaultsの解決策はどれも問題ではないようです。
これが私のコードです!私はまだStackOverflow&Cに非常に慣れていないので、これの投稿または実際のプログラミングで私が犯したばかげた間違いについて事前に謝罪します。><
struct node{
char* name;
struct node* next;
};
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){
char reader;
char srchbuff[1001];
char name[10] = "Justin";
char* srch;
int i;
struct node *head;
struct node *cur;
head = malloc(sizeof(struct node));
head->name = name;
head->next = 0;
for(i=0; i<1000; i++){
scanf("%c", &reader);
srchbuff[i] = reader;
}
srchbuff[i] = '\0';
srch = malloc(sizeof(char)*i);
strcpy(srch, srchbuff);
cur = head;
while( (cur != NULL) && (strcmp(cur->name, srch)) != 0){
cur = cur->next;
}
}
別の関数に割り当てられた他のノードがあり、正常に機能します。また、情報も別の関数に割り当てられ(これも正常に機能します)、構造体はヘッダーファイルにあるため、すべて満足して認識されます。
また、gdbステートメントとprintfステートメントを使用してテストし、strcmpがsegfaultingの場所にあることを確認しましたが、間違いなくそうです。提案を事前に感謝します:)