C语言指针进阶

本文详细介绍了C语言中的动态内存管理,包括malloc、calloc、realloc和释放内存函数的使用。同时,探讨了typedef、函数指针、二级指针以及指针函数的概念和应用,提供了一个深入理解C语言指针的综合指南。
摘要由CSDN通过智能技术生成

(一)动态内存申请

       在c/c++语言中,编写程序有时不能确定数组应该定义为多大,因此这时在程序运行时要根据需要从系统中动态多地获得内存空间。所谓动态内存分配,就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。

① 断言

#include <assert.h>
assert(p);      //p等于NULL触发断点,中断程序 断言

② malloc 动态内存,不做初始化

#include <malloc.h>   
void*  malloc(size_t _Size);  //size:申请内存的总字节数

③ calloc  动态内存申请,会初始化为0

void*  calloc( size_t _Count,size_t _Size); //有几个数据:count,每个数据占用的字节数:size

④  realloc  内存重新申请,保留原数据

void*  realloc(void*  _Block,size_t _Size); //原指针,重新申请的内存大小,必须要比原来的内存还要大

 ⑤ 释放内存函数

void  free(void* _Block);
  • __cdecl 调用准则,限定参数传参顺序(入栈顺序)--->了解一下

  •  _out_ 传出参数

  • _In_ 参数类型修饰 传入

  •  size_t unsigned int

  • void* 使用前必须强制类型转换

相关代码:

#include  <stdio.h>
#include  <malloc.h>
#include  <assert.h>
void text()
{
	//动态内存的内存都是指针。
	//动态内存申请:就是堆区
	//一段内存的申请
	int* p = (int*)malloc(sizeof(int)*3); //(int*):将申请的 进行类型强转成(int*); *3:代
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尘 关

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值