关于malloc与a[n]的等效

本文详细介绍了C语言中的动态内存分配函数malloc,包括其作用、使用方法及返回值说明。同时,强调了指针分配内存的重要性,防止出现野指针问题。此外,还探讨了memset函数在内存初始化中的应用,用于将分配的内存区域设置为特定值,以确保数据安全。
摘要由CSDN通过智能技术生成

首先,针对malloc函数:

函数原型:void malloc(unsigned int num_bytes);  //分配长度为num_bytes字节的内存块

  返回值是void指针,void* 表示未确定类型的指针,void *可以指向任何类型的数据,更明确的说是指申请内存空间时还不知道用户是用这段空间来存储什么数据类型(比如是char还是int或者其他数据类型),可以通过类型强制转化转化为其他任意类型指针。如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。

 值得注意的是,malloc返回的是指针。并且,(int*)malloc(n*sizeof(int));语句给指针变量分配n个整型存储空间,即占了n个位置此处n个占位置等效与a[n]效果,且符合语法。

另外,自己定义的指针*num一定要给其分配地址:

malloc的原型是

void * malloc(int size);	//	void*表示函数返回值为任意类型,size是分配的内存单元字节数
  • 1

当如果不给p分配内存地址,它就会变成“野指针”,进而导致程序崩溃。

2.。。由于malloc只分配空间,初始化时却赋随机值,因此常用memset()对malloc赋0:

memset是对字节进行操作的*

void   *  memset ( void   *  p, int  c, size_t  n);

其中,指针p为所操作的内存空间的首地址,c为每个字节所赋的值,n为所操作内存空间的字节长度,也就是内存被赋值为c的字节数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值