c语言内存分配-malloc

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言内存分配-malloc相关的知识,希望对你有一定的参考价值。

malloc

原型:(原来返回类型是char)

1 extern void *malloc(unsigned int num_bytes);

头文件:

1 #include <stdlib.h>
2 #include <malloc.h>

函数声明:

void *malloc(size_t size);

返回值:

  分配成功:返回被分配内存的指针

  失败:返回NULL

  不再使用时,可用free()函数释放内存

 

使用:

1 int *p,*s;
2 p=(int*)malloc(sizeof(int));/*(int*)指的是p的类型,sizeof(int)表示分配给p的内存大小*/
3 s=(int*)malloc(sizeof(int)*100);//分配可以放得下100个整数的内存空间

正常的程序例子(摘抄自百度百科)

 1 typedef struct data_type{
 2     int age;  
 3     char name[20];
 4 }data;
 5 
 6 data*bob=NULL;     
 7 bob=(data*)malloc(sizeof(data));
 8 if(bob!=NULL)
 9 {
10     bob->age=22;
11     strcpy(bob->name,"Robert");       
12     printf("%sis%dyearsold\n",bob->name,bob->age);
13 }
14 else 
15 {
16     printf("mallocerror!\n");       
17     exit(-1);
18 }
19 free(bob);
20  
21 bob=NULL;

更多内容希望可以和朋友们交流!

以上是关于c语言内存分配-malloc的主要内容,如果未能解决你的问题,请参考以下文章

C语言 malloc()函数 分配内存空间尺寸的问题

C语言 malloc()函数 分配内存空间尺寸的问题

c语言中啥是动态分配内存?

c语言内存分配-malloc

c语言中malloc是啥?怎么用?

malloc背后的调用机制-malloc内存分配过程详解