C语言-malloc、free、memset、realloc、strcpy

news/2024/11/19 19:43:31/

malloc()开辟指定内存空间

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

 free  释放内存空间

free
C 库函数 void free(void *ptr) 释放之前调用 calloc、malloc 或 realloc 所分配的内存空间。
    作用:

                1.释放,防止内存泄露

                2.防止悬挂指针,野指针的一种 赋值为NULL

memset 内存初始化

函数原型 void *memset(void *str, int c, size_t n)

realloc()   扩容

函数原型 void *realloc(void *ptr, size_t size)
        C 库函数 void *realloc(void *ptr, size_t size) 尝试重新调整之前调用 malloc 或 calloc 所分配的 ptr 所指向的内存块的大小。

strcpy()  复制字符串

char *strcpy(char* dest, const char *src)

 以上的函数应用如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/*	malloc()开辟指定内存空间free释放内存空间
*/
int main()
{//定义一个野指针char *p;//原理:void* malloc(size_t size):分配所需要的内存,并把返回一个内存指向。p=(char *)malloc(1);//(char *):强制转换char类型的指针*p='1';printf("%c\n",*p);free(p);//释放内存空间p=NULL;//防止指针悬挂//扩容之前p=(char *)malloc(10);if(p==NULL)//防止单片机的内存不足,做的判断{printf("malloc  error");exit(-1);}//内存初始化memset(p,'\0',10);puts("内存初始化完成");printf("扩容地址:%x\n",p);//计算长度int len=strlen("1234567890shikaikaihuoj");int newlen=len-10+1;//扩容realloc(p,newlen);//扩容之后的printf("扩容之后地址:%x\n",p);//复制字符串strcpy(p,"1234567890shikaikaihuoj");//char *strcpy(char* dest, const char *src);dest是一个变量指针puts(p);puts("end");return 0;
}

 输出结果:

 


http://www.ppmy.cn/news/50979.html

相关文章

经典文献阅读之--VGICP(体素化的ICP匹配)

0. 简介 之前我们在以前的文章中介绍了很多有关于点云匹配相关的知识&#xff0c;最近两年处理GICP这一大一统的ICP匹配方法以外&#xff0c;还有一个工作对体素化和ICP这两者打起了心思&#xff0c;《Voxelized GICP for Fast and Accurate 3D Point Cloud Registration》提出…

并查集解决图的连通性问题

并查集 1. 定义2.并查集3.模板代码4. 力扣例题4.1 剑指 Offer II 118. 多余的边4.2 力扣695. 岛屿的最大面积 1. 定义 在计算机科学中&#xff0c;并查集&#xff08;英文&#xff1a;Disjoint-set data structure&#xff0c;直译为不交集数据结构&#xff09;是一种数据结构&…

奇舞周刊第490期:WebAssembly 多语言/宿主环境中的使用

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞精选 ■ ■ ■ WebAssembly 多语言/宿主环境中的使用 WebAssembly (WASM) 的一个优势就是能够支持将不同语言编译成 WASM 代码&#xff0c;然后在不同的宿主环境中运行。这样就可以在不同的宿主环…

制造型企业为何需要MES管理系统,企业怎样选择合适的MES

MES管理系统是专门针对制造型企业而设计的&#xff0c;能实现对生产车间、工厂信息化管理&#xff0c;帮助制造型企业提高生产效率&#xff0c;加快数字化转型。目前针对制造型企业生产效率、企业竞争力和生产管理状况的需求&#xff0c;MES管理系统已经成为实现生产经营目标的…

商品页面翻页功能--购物车拓展

之前我们在mvc练习中曾经写过翻页功能&#xff0c;现在我们给购物车产品显示界面也加一个 1、把productlist中dao的sql语句做出修改&#xff0c;并传递需要用到的参数 再来一个返回product总数的方法 2、 对productlist的servlet拓展相关操作&#xff0c;准备好翻页的功能 3、…

二十三、高级网络技术及应用——BFD解析

文章目录 前言一、BFD 简介1、概述&#xff1a;2、作用&#xff1a; 二、静态路由调用 BFD1、配置静态 BFD2、配置动态 BFD 三、OSPF联动BFD四、BFD 单臂回声&#xff08;one arm echo&#xff09; 前言 BFD&#xff1a;Bidirectional Forwarding Detection&#xff0c;双向转…

【源码解析】Spring事务 @Transactional 源码解析

源码解析 自动化配置 在spring-boot-autoconfigure查看spring.factories引入TransactionAutoConfiguration org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration,\查看Tran…

SQL之新人专属——数据库操作

本文专属于基础篇章&#xff0c;适于小白对SQL的基本了解 目录 1&#xff0c;什么是数据库&#xff1f; 2&#xff0c;什么是SQL&#xff1f; 3&#xff0c;SQL有什么用&#xff1f; 4&#xff0c;SQL类型 5&#xff0c;SQL之DDL,DML,DQL&#xff0c;DCL 1&#xff0c;什…