搞懂C语言动态分配内存给一维数组和二维数组

您所在的位置:网站首页 c语言申请动态二维数组 搞懂C语言动态分配内存给一维数组和二维数组

搞懂C语言动态分配内存给一维数组和二维数组

2024-05-30 09:37| 来源: 网络整理| 查看: 265

1、一维数组动态分配内存:int num[5]

源码:

int main(void) { // 使用动态内存分配一个数组为 int num[5] int *num = NULL; int len = 5; num = (int *)malloc(len * sizeof(int)); for (int i = 0; i

② 分配在堆区的内存空间地址是连续的,打印的结果如下:

num[0] = 0, &num[0] = 01145B50num[1] = 1, &num[1] = 01145B54num[2] = 2, &num[2] = 01145B58num[3] = 3, &num[3] = 01145B5Cnum[4] = 4, &num[4] = 01145B60

地址是4个字节递增,因为这里int型是4字节的,它跟在栈区定义数组 int num[5] 是一致的。

③ 在堆区动态分配的内存需要进行手动释放,不然会造成内存泄漏,使用free(num)。

2、二维数组动态分配内存:char ptr[5][30]

源码:

int main(void) { int n = 5; // char *ptr[5]; char **ptr = (char **)malloc(n * sizeof(char *)); if (ptr == NULL) { printf("malloc failed!\n"); return -1; } char buf[30]; for (int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3