C语言——malloc()函数

邮差的信 提交于 2020-02-25 00:45:19

动态存储的函数的原型为:

void * malloc(unsigned int size);

函数的作用:

系统自动在内存的动态存储区中,分配长度为size的一段连续空间。
若此函数执行成功,则函数返回值为指向被分配域的起始地址的指针(该函数的返回值的基本类型为void)。
若该函数执行失败(如内存空间不足的情况),则函数返回值为空指针(NULL)。

举例:

#include <stdio.h>
#include <stdlib.h>
main()
{
	int *a, *b, *c;
	a=b=c=(int*)malloc(sizeof(int));
	*a=1; *b=2, *c=3;
	a=b
	printf("%d, %d, %d\n", *a, *b, *c);
}

malloc()函数动态分配了一个整型的内存空间,然后把函数返回的地址用(int*)强制类型转换为整型指针,再把它赋给a, b, c, 即让指针变量a, b, c 都指向刚申请的内存空间。所以只有最后一个赋值语句*c=3的值保留在了该空间内,因为a, b, c三个指针变量均指向该空间,所以最后打印出都是3。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!