首页 > 系统相关 >C语言动态分配内存

C语言动态分配内存

时间:2023-01-09 23:37:31浏览次数:41  
标签:int realloc void C语言 char num 分配内存 calloc 动态

初创建于: 2022-02-09 00:30

C语言的动态分配内存是十分重要的

主要有四个函数:

void *malloc(int num)
void *calloc(int num, int size)
void *realloc(void *address, int newsize)
void free(void *address)

malloc

void *malloc(int num)

在堆区分配一块指定大小的内存空间, 这块内存空间在函数执行完成后不会被初始化, 他们的值是未知的.

calloc

void *calloc(int num, int size)

在内存中动态地分配 num 个长度为 size 的连续空间, 并将每一个字节都初始化为 0. 所以它的结果是分配了 num*size 个字节长度的内存空间, 并且每个字节的值都是0.

name = (char *)calloc(200, sizeof(char));

realloc

void ralloc(void *address, int newsize)

该函数重新分配内存,把内存扩展到 newsize。

name = (char *)realloc(name, 100 * sizeof(char));

关于realloc函数, 需要注意原空间与新新申请的空间的关系.

char* str1 = (char*) calloc(10, sizeof(char));
char* str2 = (char*) realloc(str1, 20 * sizeof(char));

在以上程序中, str2是在str1的基础上扩充的, 因此str1~=str2,
但是在释放str1的空间后, str2也会失效.

free

void free(void *address)

该函数释放 address 所指向的内存块,释放的是动态分配的内存空间。

所有使用 malloc 与 calloc 申请的内存空间都应该被释放, 否则会造成内存泄露, 十分严重.

标签:int,realloc,void,C语言,char,num,分配内存,calloc,动态
From: https://www.cnblogs.com/Corona09/p/17038861.html

相关文章

  • C语言指针大纲
    ......
  • C语言:猜数字游戏
    #include<stdio.h>#include<windows.h>#include<stdlib.h>#include<time.h>voidgame(){{intret=0;intguess=0;ret=rand()%100+1;while(1)......
  • 【动态规划】背包问题的应用
    目录0-1背包问题应用应用1:Leetcode.416题目分析边界条件状态转移代码实现0-1背包问题应用应用1:Leetcode.416题目416.分割等和子集分析设\(dp[i][j]\)表示取前\(i......
  • nginx静态目录加上动态URL转发
    vim/data/application/nginx-1.10.3/conf/nginx.confsendfileon;#tcp_nopushon;#keepalive_timeout65;keepalive_timeout0;#gzipo......
  • SQL动态创建表,时间为表名字
    declare@sqlvarchar(1000)set@sql='createtabletb_'+convert(varchar(8),dateadd(dd,-1,getdate()),112)+'(字段内容)ON[PRIMARY]TEXTIMAGE_......
  • 动态库静态库笔记
    命名linux下,动态库以.so结尾,静态库以.a结尾libxxx.a/libxxx.sogcc链接这些库的时候使用的是该库的名字xxx而不是全称libxxx.a静态库制作和使用c静态库制作gcc-c命......
  • Redis 数据结构-简单动态字符串
    Redis数据结构-简单动态字符串 无边落木萧萧下,不尽长江滚滚来。 1、简介Redis之所以快主要得益于它的数据结构、操作内存数据库、单线程和多路I/O......
  • C语言信息工程学院成绩管理系统
    C语言信息工程学院成绩管理系统信息工程学院成绩管理系统的设计与实现一、实训目的通过本次实训,提高学生C语言程序设计和程序调试能力,初步培养学生对软件开发的需求调研......
  • C语言学生管理系统[2023-01-09]
    C语言学生管理系统[2023-01-09]学生管理系统利用数据结构的单链表的框架实现学生管理系统以下功能要求:1)学生个人信息:姓名、学号、专业、性别、年龄、联系方式、成绩。......
  • vue3 中动态绑定 img src 问题
    vite 官方默认的配置,如果资源文件在assets文件夹打包后会把图片名加上hash值,但是直接通过:src="imgSrc"方式引入并不会在打包的时候解析,导致开发环境可以正常引入,打包后......