我正在尝试将结构数组排入队列,但每当我尝试将信息插入其中时它就会崩溃。
结构本身如下所示:
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);
是什么导致了这次崩溃,我该如何预防?