構造体配列をエンキューしようとしていますが、情報を挿入しようとするとクラッシュします。
構造体自体は次のようになります。
typedef struct {
char first_name;
char last_name;
char pers_nbr;
} person;
関数は次のようになります。
void enqueue(person pers)
{
strcpy(queue[tail].first_name, pers.first_name);
strcpy(queue[tail].last_name, pers.last_name);
strcpy(queue[tail].pers_nbr, pers.pers_nbr);
tail = (tail+1) % QUEUE_MAX_SIZE;
nbr_elem++;
}
デバッグしていて、最初の strcpy でクラッシュし、「アクセス違反の読み取り場所」というエラーが返されます。問題は pers オブジェクトにあるようです。
データを挿入しようとしている方法は次のとおりです。
person test;
test.first_name = "John";
test.last_name = "Doe";
test.pers_nbr = "A";
enqueue(test);
このクラッシュの原因と、それを防ぐ方法を教えてください。