C语言堆区内存管理

news/2024/10/24 12:26:43/

一、C语言编译的内存分配

在这里插入图片描述

二、堆区空间的分配

1、malloc函数

功能:从堆区分配内存

#include <stdlib.h>
void *malloc(unsigned int size)//@size 分配内存的字节数

2、free函数

功能:释放内存

#include <stdlib.h>
void free(void *ptr)//@ptr 分配内存的首地址

3、memset函数

#include <string.h>
void *memset(void *s, int c, size_t n);
功能:把s所指向内存区域的前n个字节,全部置为c参数:
@s想要操作内存区域的首地址
@c内存区域填充的值
@n需要填充的字节数返回值
成功返回s所指向的地址,失败返回NULL

示例:申请数组地址,将输入的数据存入数组,输出数组

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 5//申请数组地址
int *get_memory_addr(){
int *result=NULL;
result=(int *)malloc(sizeof(int)*N);
if(NULL==result){printf("地址申请失败\n");
}
//为result赋初始值
memset(result,0,sizeof(int)*N);return result;}//输入
void input_array(int *p){
for(int i=0;i<N;i++){printf("请输入第%d个数:",i+1);scanf("%d",(p+i));
}
}//输出
void output_array(int *p){
for(int i=0;i<N;i++){printf("%d\t",*(p+i));
}
}int main(){
int *t=NULL;
t=get_memory_addr();
input_array(t);
output_array(t);
free(t);
t=NULL;
return 0;
}

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

相关文章

【代码随想录刷题记录】LeetCode704二分查找

读研以后写AI那些玩意写多了&#xff0c;确实需要练练算法&#xff0c;我现在写个二分查找都出现问题&#xff0c;绷不住了&#xff0c;而且过CSP竞赛是毕业条件&#xff0c;没办法&#xff0c;以后一天刷一个题吧&#xff0c;太忙了 1. 左闭右闭 class Solution { public://…

获取会话公钥

----------------------------------------------------举例 签到 接口开始--------------------------------------------------- 第一步&#xff1a;-----请求报文明文:{"body":{},"head":{"ywId":"GY0001"}} ODxdq2/WhHlCKoLIGNV2j…

Jmeter BeanShell调用Java方法加密

1、添加BeanShell前置处理器 由于请求接口时&#xff0c;会传加密参数。加密过程会在请求之前完成&#xff0c;所以需要使用前置处理器中beanshell preprocessor 2、编写BeanShell脚本 ①定义一个beashell变量&#xff1a;phoneNum&#xff0c;在Beanshell中可以直接调用Jmete…

wsl ubuntu18.04升级为cmake-3.15.3

wsl ubuntu18.04 默认的cmake为3.10&#xff0c;编译CMakeLists.txt经常需要高版本cmake。 升级过程如下&#xff1a; 下载cmake-3.15.3-Linux-x86_64.tar.gz wget https://cmake.org/files/v3.15/cmake-3.15.3-Linux-x86_64.tar.gz 解压文件 tar zxvf cmake-3.15.3-Linux-x86…

ui生成代码详细教程

被askmanyai的图生代码技术秀到了&#xff01;前端开发效率&#xff0c;提升到秒级 完全吊打了阿里的图生代码技术&#xff01; 上传一张网站图片或者UI稿&#xff0c;然后用askmanyai生成实现这个网站的代码的教程来啦&#xff01; 在askmanyai的中文网站上一分钟就能实现&…

java面向对象的封装Triangle

&#xff08;1&#xff09;定义三角形类Triangle&#xff0c; * - 声明实例变量a,b,c&#xff0c;代表三角形三条边&#xff0c;全部私有化private&#xff0c; * - 提供每条边的get方法&#xff0c; * - 提供public void setBases(double a, double b, double c)&#xff1a;要…

【数组】【自定义排序】Leetcode 56. 合并区间

【数组】【自定义排序】Leetcode 56. 合并区间 解法1 ---------------&#x1f388;&#x1f388;56. 合并区间 题目链接&#x1f388;&#x1f388;------------------- 解法1 进行二维数组按照第一维度升序排序&#xff1a;Arrays.sort( nums, (o1,o2) -> o1[0]-o2[0] ) …

websocket 和 eventsource 的区别和应用

先从语法方面说&#xff0c;再从特性方面说&#xff0c;再说应用场景 EventSource 和 WebSocket 都是用于实现服务器和客户端之间的双向通信的技术&#xff0c;但它们有一些重要的区别&#xff1a; 协议&#xff1a; WebSocket 使用自定义的协议&#xff0c;它是一种全双工通信…