(0xC0000005) in clion when 运行 code without debug mode
(0xC0000005) in clion when running code without debug mode
我一直在尝试用这段代码制作一个链表。当我 运行 它使用调试模式时它工作正常(并以退出代码 0 退出)。但是当我尝试 运行 它或者当我手动编译代码时它退出并显示“进程完成退出代码 -1073741819 (0xC0000005)”。
num_t *temp = nums;
while (temp -> next){
temp = temp -> next;
}
temp -> next = (num_t *) malloc(sizeof(num_t *));
temp = temp -> next;
temp -> location[0] = i;
temp -> location[1] = j;
temp -> next = NULL;
num_t 是 struct num 的类型定义。 struct num 是一个结构,它有一个由 2 个整数组成的数组(数组“location”)和一个指向 struct num 的指针。 nums 是链表的第一个节点,并且在之前被初始化(它的下一个节点是 NULL)。
我阅读了有关“进程已完成,退出代码为 -1073741819 (0xC0000005)”的主题。 none 其中有用。
好吧,根据@Gerhardh 的评论,问题的发生是因为我为节点分配的内存不足。我只为一个指针分配内存,而不是为一个指针和两个整数分配内存。所以将 malloc(sizeof(num_t *))
更改为 malloc(sizeof(num_t))
解决了问题。最后,我必须感谢@yano 的详细解释。
我一直在尝试用这段代码制作一个链表。当我 运行 它使用调试模式时它工作正常(并以退出代码 0 退出)。但是当我尝试 运行 它或者当我手动编译代码时它退出并显示“进程完成退出代码 -1073741819 (0xC0000005)”。
num_t *temp = nums;
while (temp -> next){
temp = temp -> next;
}
temp -> next = (num_t *) malloc(sizeof(num_t *));
temp = temp -> next;
temp -> location[0] = i;
temp -> location[1] = j;
temp -> next = NULL;
num_t 是 struct num 的类型定义。 struct num 是一个结构,它有一个由 2 个整数组成的数组(数组“location”)和一个指向 struct num 的指针。 nums 是链表的第一个节点,并且在之前被初始化(它的下一个节点是 NULL)。
我阅读了有关“进程已完成,退出代码为 -1073741819 (0xC0000005)”的主题。 none 其中有用。
好吧,根据@Gerhardh 的评论,问题的发生是因为我为节点分配的内存不足。我只为一个指针分配内存,而不是为一个指针和两个整数分配内存。所以将 malloc(sizeof(num_t *))
更改为 malloc(sizeof(num_t))
解决了问题。最后,我必须感谢@yano 的详细解释。