1、什么是动态内存?
2、为什么要有动态内存?
3、常见的内存错误
(1)指针没有指向一块合法的内存
(2)为指针分配的内存空间太小
(3)内存分配成功但并未初始化
(4)内存越界
(5)内存泄漏
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define N 10
int main()
{
int* p = (int*)malloc(sizeof(int) * N); //动态开辟空间
//为什么要进行强制类型转换?因为不转换的话,默认的返回类型是void *
if (NULL == p) {
return 1;
}
//一般在使用malloc开辟的空间的时候,一定要注意要检测指针的合法性,即指针是否为空
//如果不检测其合法性,程序虽然不会报错,但是会出现警告(VS2019环境下)
for (int i = 0; i < N; i++) {
p[i] = i;
}
for (int i = 0; i < N; i++) {
printf("%d ", i);
}
printf("\n");
free(p); //开辟完之后,要程序员自主释放
return 0;
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/m0_57304511/article/details/121780666
内容来源于网络,如有侵权,请联系作者删除!