c语言动态申请内存(malloc与calloc)

c语⾔动态申请内存(malloc与calloc)
malloc与calloc
1.函数原型
#include<stdlib.h>
void *malloc(unsigned int size);    //申请size字节的内存
void *calloc(unsigned int num, unsigned size);    //申请num*size字节的内存
正弦波信号发生器2.函数的返回值为void*类型,使⽤时需强制转换为所需要的类型;
如果内存申请失败,则返回NULL,所以使⽤申请到的内存时需要先进⾏判断。
如:char* p = (char*)malloc(6 * sizeof(char));
3.申请的内存位于堆中,不再需要使⽤时,需调⽤free函数释放
void free(void *p);
生产毛刷需要什么设备
注意:
1.void *与NULL是完全不同的两个概念
int *p=NULL;
void *p;
2.malloc与数组的⽐较:
(1)传给malloc函数的实参可以是⼀个表达式,从⽽可以“动态”申请⼀块内存;
(2)使⽤malloc函数申请的内存(存放在堆中,在⼿动释放之前会⼀直存在)可以从函数中返回;⽽使⽤数组则不可以(存放在栈中,当函数执⾏结束后,栈内存被释放),⽰例代码如下:
锅炉减温减压装置1 #include<stdio.h>
2 #include<stdlib.h>
3int main()
4 {
5char* func1();
6char* func2();
7char* pf1;
8char* pf2;
9    pf1 = func1();
10    pf2 = func2();
11    printf("%s\n", pf1);    //输出f1
12    printf("%s\n", pf2);    //输出乱码,错误信息-返回局部变量的地址
13 }
14
15char* func1()
16 {
17char* p = (char*)malloc(3 * sizeof(char));自攻丝
18if (p)
调速轮
19    {
20        p[0] = 'f';
21        p[1] = '1';
22        p[2] = '\0';
23return p;
24    }
25return NULL;
26 }
27
鼓膜式板框压滤机28char* func2()
29 {
30char p[3] = "f2";
31return p;
32 }

本文发布于:2024-09-21 22:06:35,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/276257.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内存   申请   函数
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议