EDIT:適切に私の文字をintilizingしようとするために、約... [didntの仕事=(]私がscanf(%s、lastName)を実行すると、セグメント化エラーが発生します。 (内部のボディコード)
EDIT:解決しよう(私は別の7時間の自分の質問に答えることはできません...)
コメントブライアンのためのおかげで、それは(それが= 20)。..先頭で宣言だけで定数です。
は、それは私が入力にかかった後、私は次の行を追加するのを忘れているため、エラーが起こっていたが判明します
現在作業中です= D
:私はコードの下に私のコード、基本的に私は、最初の名前に入れ、これはその後、私は最後の名前に入れ
ジョン
を見つけることENDEDIT(笑)
想定されてきました...
ロック
とすぐ、私は「ロック」に入力すると、このエラーを打つ、私は多分それはscanfのだように感じると私はより良い代替手段を使用する必要があります?
int findPatron(struct Library *lib,struct Patron **p)
{
int i;
char firstName[NAME_LENGTH], lastName[NAME_LENGTH];
printf("\nPlease enter the patron's first name: ");
scanf("%s",firstName);
printf("\nPlease enter the patron's last name: "); //this line prints...
scanf("%s",lastName); //SEGMENTATION ERROR happens here I'm pretty sure.
printf("deerrrr"); //this line never prints
for(i = 0; i<lib->totalPatrons;i++)
{
printf("checking %s %s to %s %s",lib->patrons[i].name.first,lib->patrons[i].name.last,firstName,lastName);
if((strcmp(lib->patrons[i].name.first, firstName) == 0) && (strcmp(lib->patrons[i].name.last, lastName) == 0))
{
**p = lib->patrons[i];
return 0;
break;
}
}
return 1; //No Match!
}
ありがとうございます。問題は私のルピーであった、私はそのダブルポインタを使っていたので、** p = lib->パトロン[i]のためだけに使うべきだったので、* p =&lib->パトロン[i]だった。 – ChrisB92