进程结束,退出代码为 -1073741819 (0xC0000005) - C,Clion
Process finished with exit code -1073741819 (0xC0000005) - C, Clion
我是 运行 我的 InitializeMsgQs() 函数:
struct MsgQs_t *pst;
struct MsgQs_t queue[10];
void initializeMsgQs() {
int qNumber = 0;
printf("Enter queue number:\n");
scanf("%d", &qNumber);
*pst = queue[qNumber];
printf("Enter identifier: \n");
// assigning the identifier as an element in the queue array
scanf("%d", &queue[qNumber].id);
}
输入队列号后,系统提示:
进程结束,退出代码为 -1073741819 (0xC0000005),
当我应该被要求输入队列标识符时。
queue 是一个大小为 10 的结构数组,id 是 int 类型,在主结构中。
*pst = queue[qNumber];
应该是 pst = &queue[qNumber];
。 queue
是一个结构数组,pst
是指向这种结构的指针。所以必须把queueu结构的地址放在pst
.
写 *pst = queue[qNumber];
是正确的,意味着将队列元素的数据分配给 pst
指向的内容。但是,pst
没有指向任何地方(它仍然是 0)。
另请参阅 Ctx 关于检查是否读取了有效数字的评论。
我是 运行 我的 InitializeMsgQs() 函数:
struct MsgQs_t *pst;
struct MsgQs_t queue[10];
void initializeMsgQs() {
int qNumber = 0;
printf("Enter queue number:\n");
scanf("%d", &qNumber);
*pst = queue[qNumber];
printf("Enter identifier: \n");
// assigning the identifier as an element in the queue array
scanf("%d", &queue[qNumber].id);
}
输入队列号后,系统提示: 进程结束,退出代码为 -1073741819 (0xC0000005), 当我应该被要求输入队列标识符时。
queue 是一个大小为 10 的结构数组,id 是 int 类型,在主结构中。
*pst = queue[qNumber];
应该是 pst = &queue[qNumber];
。 queue
是一个结构数组,pst
是指向这种结构的指针。所以必须把queueu结构的地址放在pst
.
写 *pst = queue[qNumber];
是正确的,意味着将队列元素的数据分配给 pst
指向的内容。但是,pst
没有指向任何地方(它仍然是 0)。
另请参阅 Ctx 关于检查是否读取了有效数字的评论。