【发布时间】:2018-04-07 15:11:14
【问题描述】:
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main() {
int *arr = malloc(sizeof(int));
int n;
printf("input number:\t");
scanf("%d", &n);
for(int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for(int i = 0; i < n; i++) {
printf("%d", arr[i]);
}
free(arr);
return 0;
}
它一直运行到 scanf 然后它就崩溃了:
1234875770417Aborted (core dumped)
我看过其他类似的帖子,但都没有解决我的问题。
【问题讨论】:
-
您只为一个 int int *arr = malloc(sizeof(int)); 类型的对象分配了内存。所以 n 不能大于 1。
标签: c memory memory-management malloc undefined-behavior