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,最后要释放它,并设为空指针