c语言————开辟动态内存空间
如何使用c语言开辟一块动态内存内存空间:
#include<stdio.h>
#include<stdlib.h>
struct s
{int n;int arr[0];//内容为定义,目前无大小
};
int main()
{//开辟内存malloc函数 int n前面的4个字节,开辟5个int字节给arr,开辟完之后这个目前一共24个字节struct s* p = (struct s*)malloc(sizeof(struct s) + 5 * sizeof(int));p->n = 100;int i = 0;//存放内容for (i = 0; i < 5; i++){p->arr[i] = i;//0 1 2 3 4}//增加调整空间struct s* ptr = realloc(p, 44);//将arr原先的20个字节改为44个字节,返回值为ptr//增加内存前一定要判断if (ptr != NULL)//防止开辟失败{p = ptr;}for (i = 5; i < 10; i++)//将开辟好的内容加到后面{p->arr[i] = i;}//将内容一并打印出来for (i = 0; i < 10; i++){printf("%d ", p->arr[i]);}//释放空间free(p);p = NULL;return 0;
}
以上便是c语言的开辟喝增加修改空间的方法,
这里要注意的是,增加前要加判断这块空间是不是空的,在开辟完之后一定要记得释放这块空间,并修改为空指针,否则会造成内存泄漏的问题。
c语言————开辟动态内存空间相关推荐
- C语言之动态内存开辟之malloc
说到动态内存开辟,就不得不谈malloc.calloc.realloc以及free,所以接下来分别谈一下这四个函数. 1.malloc(开辟动态内存空间) 头文件:#include<stdlib ...
- C语言:动态内存管理
目录 一.为什么存在动态内存分配 二.动态内存函数的介绍 1.malloc 2.free 3.calloc 4.realloc 常见的动态内存错误 1. 对NULL指针的解引用操作 2.对动态开辟空间 ...
- 动态内存管理(开辟以及释放动态内存空间)
文章目录 前言 malloc函数 calloc函数 realloc函数 free函数 - 避免内存泄漏 常见的动态内存错误 前言 如果我们被问道:如何创建一个可以根据用户需求来开辟大小的数组? 可能有 ...
- C语言为四维数组申请动态内存空间的方法(二)
尝试了用堆栈的方式为四维数组申请动态内存空间,并将申请内存的操作封装成了子函数,方便在主程序中使用.希望对大家有用.代码如下: #include <stdio.h> #include &l ...
- C语言为四维数组申请动态内存空间的方法(一)
尝试了用结构体为四维数组申请动态内存空间,希望对大家有用.代码如下: #include <stdio.h> #include <stdlib.h>typedef struct ...
- C语言中动态内存分配的本质是什么?
摘要:C语言中比较重要的就是指针,它可以用来链表操作,谈到链表,很多时候为此分配内存采用动态分配而不是静态分配. 本文分享自华为云社区<[云驻共创]C语言中动态内存分配的本质>,作者: G ...
- 【C语言】动态内存分配
[C语言]动态内存分配 文章目录 [C语言]动态内存分配 一.malloc 与free函数 二.calloc 三.realloc 四.常见的动态内存的错误 本期,我们将讲解malloc.calloc. ...
- C语言进阶——动态内存管理
目录 一.为什么存在内存分配 二.动态内存函数 1.malloc 2.free 3.calloc 4.realloc 三.常见的动态内存错误 1.对NULL指针的解引用操作 2.对动态开辟空间的越界访 ...
- C语言知识点 -- 动态内存管理、文件操作
C语言知识点 – 动态内存管理.文件操作 文章目录 C语言知识点 -- 动态内存管理.文件操作 一.动态内存管理 1.malloc 2.free 3.calloc 4.realloc 二.文件操作 1 ...
最新文章
- python装饰器+迭代器+生成器
- Entity Framework快速入门笔记第四篇—ModelFirst
- access 一亿条数据_循环运算数据溢出
- 3.10 深度学习框架-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- IIS崩溃时自动抓取Dump
- 数学沉思录:古今数学思想的发展与演变 (Mario Livio 著)
- 微盟耗时 145 个小时弥补删库,血亏 1.5 亿元!
- 用例图-是外部用户(被称为参与者)所能观察到的系统功能的模型图
- element ui 表格中的渲染有多个状态判断的情况
- linux合并ts文件吗,Linux 下使用 ffmpeg 大批量合并 ts 文件, mp4切割文件为m3u8
- 神舟笔记本进入BIOS的方法
- 原生js动态添加元素
- 活性(Liveness)
- K8S集群安装Pod网络附加组件
- 支付宝 java 签名_支付宝APP支付(Java后台生成签名具体步骤)
- 在同一个数据集中同时更新多表..............
- nvidia jetson agx Xavier can 开机自动运行脚本
- 英特尔固态硬盘测试软件,AS SSD测试:IOPS值高达11万_Intel 520_固态硬盘评测-中关村在线...
- 双千兆和全千兆有什么区别?_千兆字节,太字节和PB有多少?
- 彼岸花开,忧伤了谁的等待?诗意伤感日志