malloc函数详解以及例程

描述

C 库函数 void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针。

声明

下面是 malloc() 函数的声明。void *malloc(size_t size)

参数

size -- 内存块的大小,以字节为单位。

返回值

如果内存请求成功,则返回一个(void *)类型的指针 。如果请求失败,则返回 NULL

提示:程序里一定要判断下是否分配失败,以及失败的处理方法。可根据自己需求对返回的(void *)类型指针做强制类型转化。

头文件

该库函数所在的头文件,#include <malloc.h>

老相好

分配之后,需要对所分配的内存释放。函数原型:void free(void *ptr)

 

小知识:字符串常量代表一块包含字符串中所有字符以及一个空字符(‘\0’)的内存区域的地址。

 

例程:功能是分配一块内存来存放两个字符串的值,并打印出来,之后释放该内存块

#include <stdio.h>
#include <malloc.h> //malloc函数头文件
#include <string.h> //strlen函数头文件
#include <stdlib.h> //exit函数头文件

char Str1[10]="123";
char Str2[10]="789";
int main(void) { 
    char *r;
    r=(char *)malloc(strlen(Str1)+strlen(Str2)+sizeof(char));
    if(NULL == r) //分配失败
    {
        //处理函数
        exit(1); //表异常退出
    }
    strcat(r,Str1);
    strcat(r,Str2);
    printf("%s\n",r);
    free(r);
	return 0;
}

输出结果:123789

exit(非0值):表异常退出

exit(0):表示正常退出

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
malloc函数是C语言中用于动态分配内存的函数。它的原型为: ```c void* malloc(size_t size); ``` malloc函数接受一个参数size,表示需要分配的内存大小(以字节为单位)。它返回一个指向分配内存的指针,如果分配失败,则返回NULL。 malloc函数在内存堆中分配一块连续的内存空间,大小由size参数指定。这块内存空间是未初始化的,其中的内容是不确定的。 使用malloc函数分配内存后,可以通过返回的指针来访问和操作这片内存区域。可以使用指针进行读写操作,可以存储任意类型的数据。 需要注意的是,使用完分配的内存后,应该使用free函数将其释放,以便将内存还给系统。 以下是一个示例代码,演示了malloc函数的基本用法: ```c #include <stdio.h> #include <stdlib.h> int main() { int* ptr; int n = 5; // 分配内存 ptr = (int*) malloc(n * sizeof(int)); if (ptr == NULL) { printf("内存分配失败\n"); return 1; } // 写入数据 for (int i = 0; i < n; i++) { ptr[i] = i + 1; } // 读取数据 for (int i = 0; i < n; i++) { printf("%d ", ptr[i]); } // 释放内存 free(ptr); return 0; } ``` 这段代码中,首先使用malloc函数分配了n个int类型所占内存大小的空间,然后使用指针ptr访问和操作这片内存区域。最后使用free函数释放了分配的内存。 总结:malloc函数是C语言中动态分配内存的常用函数,它可以根据需要分配内存,并返回一个指向分配内存的指针。使用完分配的内存后,应该使用free函数将其释放。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值