C语言中关键函数的用法及示例

 

目录

 

memcpy()

memset()

malloc()

 free()


memcpy()函数

void *memcpy(void *dest, const void *src, size_t n);

功能拷贝src所指的内存内容的前n个字节到dest所值的内存地址上。

参数

       dest:目的内存首地址

       src:源内存首地址,注意:dest和src所指的内存空间不可重叠

       n:需要拷贝的字节数

返回值dest的首地址

示例:

#include <stdio.h>
int main()
{
    int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int b[15];
    int i = 0;

    memcpy(b, a, sizeof(a));   //将数组a拷贝到数组b中,长度为sizeof(a)

    for (i = 0; i < 10; i++)    //遍历打印出数组b
    {
        printf("%d, ", b[i]);
    }
    printf("\n");
    getchar();
}

memset()

void *memset(void *s, int c, size_t n);

功能将s的内存区域的前n个字节以参数c填入

参数

       s:需要操作内存s的首地址

       c:填充的字符,c虽然参数为int,但必须是unsigned char , 范围为0~255

       n:指定需要设置的大小

返回值:s的首地址

示例:

#include <stdio.h>
int main()
{
    int a[10];
    memset(a, 0, sizeof(a));    //初始化
    memset(a, 97, sizeof(a));   //数组中 a对应ASCII码为97  A为65
    int i = 0;
    for (i = 0; i < 10; i++)
    {
        printf("%c\n", a[i]);  //将数组以字符串打印输出
    }
    getchar();
}

malloc()

void *malloc(size_t size);

功能在内存的动态存储区(堆区)中分配一块长度为size字节的连续区域,用来存放类型说明符指定的类型。分配的内存空间内容不确定,一般使用memset初始化。

参数: size:需要分配内存大小(单位:字节)

成功:分配空间的起始地址

失败:NULL

 free()

void free(void *ptr);

功能:释放ptr所指向的一块内存空间,ptr是一个任意类型的指针变量,指向被释放区域的首地址。对同一内存空间多次释放会出错。

参数

ptr:需要释放空间的首地址,被释放区应是由malloc函数所分配的区域。

返回值:无

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值