动态分配内存
指针初始化的作用:让指针指向某个给定区域的起始地址。
所有指针必须初始化后才能引用:
如果一个指针没有初始化,那么指针指向的内存可能存在其他程序残存的数据或者其他什么东西,当我们对指针赋值的时候,指针就把那个原数据当做所指向的地址,把值赋值给这个未知的地址有各种未知的可能。
动态内存分配函数:
malloc() 函数
格式:void *malloc(unsigned size)
返回值:成功返回一个void型指针;失败返回空值
#include <stdio.h>
#include <stdlib.h>
void main()
{
char *p;
p=(char*)malloc(10); //malloc开辟10字节内存空间。 malloc返回值强制转换成 char
if(p==NULL) //失败返回NULL,检验malloc内存分配失败否
{
printf("memory allcoation failed!\n");
exit(-1);//退出当前程序;
}
gets(p);
printf("%s\n",p);
free(p); //动态分配内存,不需要的时候及时释放
}