memset等动态内存管理函数举例

简介: 动态内存管理以mem开头的函数,初始化内存空间memset–使用一个常量字节填充内存空间

动态内存管理

以mem开头的函数,初始化内存空间

memset–使用一个常量字节填充内存空间

memcpy–拷贝内存空间

memmove–拷贝内存空间

menchr–在内存空间中搜索一个字符

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
int main()
{
  int *ptr = NULL;
  int i;
  ptr = (int *)malloc(N * sizeof(int));
  if(ptr == NULL)//申请内存失败会退出,一般不会失败
  {
    exit(1);
    }
    memset(ptr,0,N * sizeof(int));//初始化申请的内存,第一个为标志位,第二个为初始化的内容,第三个为初始化内存的大小
    for(i = 0; i< N; i++)
    {
      printf("%d",ptr[i]);
    }
    putchar('\n');
    free(ptr);
    return 0;
}

输出

十个0

calloc 函数与malloc函数的一个重要区别

1、calloc函数在申请完内存后,自动初始化该内存空间为零

2、malloc函数不进行初始化操作,里面数据是随机的

**


内存拷贝

**

memcpy

例:

memcpy(ptr2,ptr1,10);//将ptr1内存数据拷贝到ptr2中,大小为10


智能申请动态内存的函数


realloc


下面举例:输入任意个数,直到输入-1才停止并打印出以上输入的数

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int i,num;
  int count = 0;
  int *ptr = NULL;、//注意这里必须初始化为NULL
    do
  {
    printf("请输入一个整数(输入-1表示结束)");
    scanf("%d",&num);
    count++;
        ptr = (int *)realloc(ptr, count * sizeof(int));
        if (ptr == NULL)
        {
      exit(1);
        }
        ptr[count-1] = num;
    } while(num != -1);
    printf("输入的整数分别是 :");
    for (i = 0; i < count; i++)
    {
    printf("%d",ptr[i]);
    putchar('\n');
    free(ptr);
    return 0;
}



相关文章
|
2月前
|
C语言 C++
C语言 之 内存函数
C语言 之 内存函数
40 3
|
19天前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
48 6
|
2月前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
2月前
|
存储 程序员 编译器
C语言——动态内存管理与内存操作函数
C语言——动态内存管理与内存操作函数
|
2月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
345 1
|
2月前
|
程序员 C语言
C语言内存函数精讲
C语言内存函数精讲
|
2月前
|
存储 编译器 C++
【C++】掌握C++类的六个默认成员函数:实现高效内存管理与对象操作(二)
【C++】掌握C++类的六个默认成员函数:实现高效内存管理与对象操作
|
2月前
|
存储 C语言
【c语言】字符串函数和内存函数
本文介绍了C语言中常用的字符串函数和内存函数,包括`strlen`、`strcpy`、`strcat`、`strcmp`、`strstr`、`strncpy`、`strncat`、`strncmp`、`strtok`、`memcpy`、`memmove`和`memset`等函数的使用方法及模拟实现。文章详细讲解了每个函数的功能、参数、返回值,并提供了具体的代码示例,帮助读者更好地理解和掌握这些函数的应用。
40 0
|
2月前
|
C语言 C++
c语言回顾-内存操作函数
c语言回顾-内存操作函数
46 0
|
2月前
|
存储 C语言 C++
来不及哀悼了,接下来上场的是C语言内存函数memcpy,memmove,memset,memcmp
本文详细介绍了C语言中的四个内存操作函数:memcpy用于无重叠复制,memmove处理重叠内存,memset用于填充特定值,memcmp用于内存区域比较。通过实例展示了它们的用法和注意事项。
77 0