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

news2024/12/22 16:21:02

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.coloradmin.cn/o/448660.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

紧跟时代潮流,如用ChatGPT速成自媒体达人

每一个选题是否成为爆款和热门&#xff0c;这个就占了80%&#xff0c;为什么&#xff1f;因为我看到你的标题&#xff0c;我可以点进去啊&#xff0c;不管内容如何&#xff0c;至少让人眼前一亮&#xff0c;有点进去的欲望&#xff0c;至少浏览量会很大&#xff0c;这就成功了一…

【LeetCode: 1043. 分隔数组以得到最大和 | 暴力递归=>记忆化搜索=>动态规划 | 线性dp 区间dp】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

使用ETL工具Sqoop,将MySQL数据库db03中的10张表的表结构和数据导入(同步)到大数据平台的Hive中

在MySQL中&#xff0c;创建一个用户&#xff0c;用户名为sqoop03&#xff0c;密码为&#xff1a;123456 启动MySQL&#xff1a;support-files/mysql.server start 进入MySQL&#xff1a;mysql -u root -p 创建用户sqoop03&#xff1a;grant all on *.* to sqoop03% identifi…

5.5 高斯型求积公式简历

学习目标&#xff1a; 我会按照以下步骤学习高斯求积公式简介&#xff1a; 理解积分的概念&#xff1a;学习什么是积分以及积分的几何和物理意义&#xff0c;如面积、质量、电荷等概念。 掌握基本的积分技巧&#xff1a;掌握基本的积分公式和技巧&#xff0c;如换元法、分部积…

重要通知!报表控件FastReport VCL将停止支持旧的 Delphi 版本

FastReport 是功能齐全的报表控件&#xff0c;可以帮助开发者可以快速并高效地为.NET&#xff0c;VCL&#xff0c;COM&#xff0c;ActiveX应用程序添加报表支持&#xff0c;由于其独特的编程原则&#xff0c;现在已经成为了Delphi平台最优秀的报表控件&#xff0c;支持将编程开…

视频批量剪辑:如何给视频添加上下黑边并压缩视频容量。

视频太多了&#xff0c;要如何进行给视频添加上下黑边并压缩视频容量&#xff1f;今天就由小编来教教大家要如何进行操作&#xff0c;感兴趣的小伙伴们可以来看看。 首先&#xff0c;我们要进入视频剪辑高手主页面&#xff0c;并在上方板块栏里选择“批量剪辑视频”板块&#…

PX4无人机调参

文章目录 前言一、滤波参数二、PID参数自动调参手动调参角速率环姿态环 前言 PX4 1.13.2 日志分析软件&#xff1a;flight review https://logs.px4.io/ 一、滤波参数 调参时可以用自稳模式飞行 在调滤波器参数之前&#xff0c;可以先大致调一下PID的参数&#xff0c;角度率…

4-log打印

1.相关文件 2.示例 #include <stdbool.h> #include <stdint.h> #include <stdio.h> #include "nrf.h" #include "nrf_delay.h" #include "app_error.h" #include "nrf_log.h" #include "nrf_log_ctrl.h" …

WPF教程(九)--数据绑定(2)--绑定模式

一、绑定模式 绑定模式以及模式的使用效果。 示例如下是根据ListBox中的选中项&#xff0c;去改变TextBlock的背景色。将 TextBlock 的背景色绑定到在 ListBox 中选择的颜色。在下面的代码中针对TextBlock的 Background 属性使用绑定语法绑定从 ListBox 中选择的值。代码如下。…

typeScript的安装及基础使用示例

4.1.安装typescript npm 包&#xff1a; npm install -g typescript 2.查看安装好的版本检验&#xff1a; tsc -v 3.编译一个typescript 文件&#xff1a;tsc hello.ts 4.运行一个ts文件&#xff1a; 首先安装ts-node &#xff0c;ts-node需要在全局去安装。这里要用 npm…

【LeetCode】剑指 Offer 64. 求1+2+…+n p307 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/qiu-12n-lcof/ 1. 题目介绍&#xff08;64. 求12…n&#xff09; 求 12...n &#xff0c;要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句&#xff08;A?B:C&#xff09;。 【测试用例】&a…

android aidl

本文只是记录个人学习aidl的实现&#xff0c;如需学习请参考下面两篇教程 官方文档介绍Android 接口定义语言 (AIDL) | Android 开发者 | Android Developers 本文参考文档Android进阶——AIDL详解_android aidl_Yawn__的博客-CSDN博客 AIDL定义&#xff1a;Android 接口…

实验五 视图与完整性约束

实验五 视图与完整性约束 目录 实验五 视图与完整性约束选择题sql评测题1、SQl视图&#xff1a;建立视图CJ\_STUDENT题目代码题解 2、SQL视图&#xff1a;建立视图AVG\_CJ题目代码 3、SQL视图&#xff1a;建立视图IS\_STUDENT题目代码题解 4、SQL视图&#xff1a;根据视图CJ\_S…

pcle接口详解用途说明

PCIE (peripheral component interconnect express) 中文名&#xff1a;高速串行计算机扩展总线标准&#xff0c;它原来的名称为“3GIO”&#xff0c;由英特尔在2001年提出。 PCIE 有 12345代 和x1/x4/x8/x16插槽 1、PCIE x1/x4/x8/x16插槽模式&#xff0c;的区别和用处 pcel …

ChatGPT 下我的焦虑

鉴于一些读者还未体验过&#xff0c;可以看一下以下 GitHub 项目&#xff0c;收集了几千个封装的 ChatGPT 网站&#xff1a; https://github.com/weekend-project-space/chatgpt-sites 在 ChatGPT 刚出的时候&#xff0c;我对 AI 不屑一顾&#xff0c;大概源自于好几年前人工智…

微服务之异步消息通信

Informal Essay By English I’m sorry that I haven’t updated the article lately because the blogger has been busy with interviews and summarizing their experience. I will create a special article to describe the recent events. Next, let’s get to the topi…

FRP 内网穿透,绕过防火墙控制内网机器

内网穿透&#xff0c;端口映射技术是一门十分古老的技术&#xff0c;他一直是一把双刃剑&#xff0c;可以绕过防火墙入侵目标服务器&#xff0c;也可以方便我们运维&#xff0c;工作。 早年的lcx 或者portmap都是比较老的工具了&#xff0c;frp这个工具比之前的lcx或者portmap都…

element-china-area-data 中国省市区级联选择器

1.安装 npm install element-china-area-data -S 2. 说明 文档&#xff1a;element-china-area-data - npm provinceAndCityData是省市二级联动数据&#xff08;不带“全部”选项&#xff09; regionData是省市区三级联动数据&#xff08;不带“全部”选项&#xff09; prov…

车载操作系统架构研究报告

目 录 前 言 ............................................... 1 1 术语定义及缩略语 ................................................................ 3 1.1 术语与定义 ................................................................. 3 1.2 缩略语 ..............…

[读书笔记] Variational AutoEncoders

小全读书笔记 《Variational AutoEncoders》 1. Generative Model &#xff08;生成式模型&#xff09;简述2. 简单生成模型 AutoEncoders![AutoEncoder结构图](https://img-blog.csdnimg.cn/46c5dcf47e754bf7b71d973a15507e0e.png#pic_center)2.1 结构2.2 不足 3. Variational…