C语言-内存管理函数

这篇具有很好参考价值的文章主要介绍了C语言-内存管理函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

内存管理函数

  1. malloc 申请动态内存空间 viod *malloc(size_t size); 在堆上,需要手动释放。

  2. free 释放动态内存空间 void free(void *ptr);释放堆上的内存

  3. calloc 申请并初始化一系列内存空间 void *calloc(size_t nmemb, size_t size);初始为0。

  4. realloc 重新分配内存空间 viod *realloc(void *ptr, size_t size);重新分配并拷贝。

    (注明: 普通的局部变量在栈上。)

  5. memset 使用一个常量字节填充内存空间 memset(ptr, 0, N * sizeof(int));

  6. memcpy 拷贝内存空间 memcpy(prt2,prt1,N); free(ptr1);

  7. memmove 拷贝内存空间

  8. memcmp 比较内存空间

  9. memchr 在内存空间中搜索一个字符

根据用户输入动态扩容内存的例子:文章来源地址https://www.toymoban.com/news/detail-471507.html

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{

    int num, i;
    int count = 0;
    int *ptr = NULL;
    do
    {
        printf("input number: ");
        scanf("%d", &num);
        count++;
        ptr = (int *)realloc(ptr, count * sizeof(int));
        if (ptr == NULL)
        {
            exit(1);
        }
        ptr[count - 1] = num;
    } while (num != -1);

    for (i = 0; i < count; i++)
    {
        printf("%d ", ptr[i]);
    }
    putchar('\n');
    free(ptr);
    return 0;
}

到了这里,关于C语言-内存管理函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言——动态内存管理(malloc, calloc, realloc, free, 柔性数组详解)

    我们以往定义数组,都是这么定义的: 以这种方式开辟空间有两个特点: 空间开辟的大小是固定的 数组在声明的时候,必须指定数组的长度,它所需要的内存在编译时分配 因此就导致了这样一个现象:我们无法在后续的过程中修改数组的大小,这是一个十分麻烦的事情 而

    2024年02月16日
    浏览(53)
  • 动态内存函数malloc,calloc,realloc详解

    🍍个人主页🍍:🔜勇敢的小牛儿🚩 🔱推荐专栏🔱:C语言知识点 ⚠️座右铭⚠️: 敢于尝试才有机会 🐒今日鸡汤🐒: 出色一点 从能力到容貌 目录 思维导图: 一,malloc : 1.1:malloc函数简介: 1.2:malloc函数的使用:  代码: 二,calloc函数 2.1calloc函数简介: 2.2calloc函数

    2024年02月04日
    浏览(42)
  • 从 malloc 分配大块内存失败 来简看 linux 内存管理

    应用进程 malloc 返回了null,但是观察到的os 的free内存还有较大的余量 ,很奇怪为什么会这样? 不可能是oom导致的(当然也没有 os 的oom 日志),free还有余量,系统也没有cgroup的应用隔离。 我们linux上使用的库函数 malloc 基本都是用glibc库实现的malloc函数(当然如果binary 链接

    2024年02月08日
    浏览(52)
  • C语言 — 动态内存管理(动态内存函数)

    本期分为三篇介绍动态内存管理相关内容,关注博主了解更多 博主博客链接:https://blog.csdn.net/m0_74014525 本期介绍动态内存函数,函数如何使用、函数格式、在使用在所需要的注意点及C/C++程序的内存开辟区域 第一篇:C语言 — 动态内存管理(动态内存函数) 第二篇:C语言

    2024年02月14日
    浏览(45)
  • 【C++】深入探讨内存管理:malloc/free与new/delete的区别以及如何避免内存泄漏

    在软件开发中,正确处理内存管理是至关重要的一环。在C++编程中,我们经常会用到动态内存管理的工具,比如 malloc/free 和 new/delete 。本文将深入探讨 malloc/free 与 new/delete 之间的区别,以及如何有效地避免内存泄漏问题。 都是用于从堆上申请空间,并需要手动释放。 mallo

    2024年02月22日
    浏览(52)
  • C语言-内存管理函数

    malloc 申请动态内存空间 viod *malloc(size_t size); 在堆上,需要手动释放。 free 释放动态内存空间 void free(void *ptr);释放堆上的内存 calloc 申请并初始化一系列内存空间 void *calloc(size_t nmemb, size_t size);初始为0。 realloc 重新分配内存空间 viod *realloc(void *ptr, size_t size);重新分配并拷贝。

    2024年02月07日
    浏览(33)
  • C语言malloc函数详解(通俗易懂)

    简单来说,malloc函数的作用是开辟一个空间来给你使用; 他包含在标准库中 返回值是一个void*(可以简单理解为一个没人知道它是什么类型的指针),一般我们都要对结果进行类型转换; 我们通过malloc申请的空间是以字节为单位的,如malloc(1*1024*1024)则申请了1MB的空间; 如果

    2023年04月08日
    浏览(48)
  • C语言使用malloc函数模拟开辟二维数组(带分析)

    🌟 个人主页 :古德猫宁- 当我们使用malloc函数来模拟创建一个二维数组时,我们需要理解二维数组在内存中是如何存储的。在C语言中,二维数组实际上是一维数组的数组。也就是说,一个二维数组可以被看作是一个包含多个一维数组的数组 考虑一个row行、cols列的二维整数

    2024年02月02日
    浏览(42)
  • 动态内存管理函数介绍及C语言实现通讯录管理系统2.0版(动态增长版本)

    之前向大家介绍了C语言实现通讯录管理系统1.0版本,但该版本有明显的不足之处,比如:一开始就开辟了1000个date数组,如果联系人很少,那么就会造成严重的内存浪费,或者联系人超过了1000人,那么原数组就放不下了,所以今天我们考虑使用动态内存管理的办法来实现一个

    2023年04月08日
    浏览(48)
  • 16 malloc 虚拟内存分配的调试(1)

    呵呵 在 c 语言中 malloc 应该是初学者必须了解的一个函数了吧  但凡 涉及到堆内存分配的相关, 必定会使用到 malloc, realloc, calloc 这几个函数  其中 malloc 最常见, 也是最 实用  在 HotspotVM 中也经常会看到 malloc 的身影  我们这里 来调试一下 malloc 的相关的一些场景  本文主要的

    2023年04月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包