【发布时间】:2019-02-22 09:40:10
【问题描述】:
我用 C 编写了以下代码:
#include <stdio.h>
#include <stdlib.h>
int main (int argc , char *argv[]) {
int * ptr = (int *)malloc(sizeof(int));
int three = 3;
ptr = &three;
free(ptr);
return EXIT_SUCCESS;
}
当我执行时出现以下错误:
Abort signal from abort(3) (SIGABRT).
你能帮我找出我的错误吗? 谢谢!
【问题讨论】:
-
int * ptr = malloc(...); ptr = &three;就像在做int x = 10; x = 5;然后想知道为什么x不等于10。有了一点rubber duck debugging,您应该(希望)能够自己弄清楚。 -
你正在做相当于
free(&three),这是你不被允许做的。 -
学习使用valgrind
标签: c