2024.3.22
在搜素了许多文章和查阅了许多博客后依然没有找到问题所在,最后无意之间翻看以前的关于动态内存管理的代码后发现:
没加头文件:#include<stdlib.h>
苦笑不得了属于是
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main() {
int sz = 5, num;
int* a = (int*)malloc(sz * sizeof(int));
if (a == NULL) {
printf("Memory allocation failed");
exit(1);
}
for (int i = 0; i < sz; i++) {
scanf("%d", &num);
*(a + i) = num;
}
for (int i = 0; i < sz; i++) {
printf("%d ", *(a + i));
}
free(a);
a = NULL;
return 0;
}
当然,分配了动态内存,应当先看它是否为NULL,最后要释放它,并设为空指针