标签:style http color 使用 io ar for 文件 数据
malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。原型为extern void *malloc(unsigned int num_bytes)。
|
1
2
3
|
int*p;p=newint;//返回类型为int*类型(整数型指针),分配大小为sizeof(int); |
|
1
2
3
|
int*parr;parr=newint[100];//返回类型为int*类型(整数型指针),分配大小为sizeof(int)*100; |
|
1
2
3
4
5
6
7
|
int*p;p=(int*)malloc(sizeof(int)*128);//分配128个(可根据实际需要替换该数值)整型存储单元,//并将这128个连续的整型存储单元的首地址存储到指针变量p中double*pd=(double*)malloc(sizeof(double)*12);//分配12个double型存储单元,//并将首地址存储到指针变量pd中 |
|
1
2
3
4
5
6
7
8
9
10
|
type*p;if(NULL==(p=(type*)malloc(sizeof(type))))/*请使用if来判断,这是有必要的*/{perror("error...");exit(1);}.../*其它代码*/free(p);p=NULL;/*请加上这句*/ |
|
1
2
|
int*p=(int*)malloc(sizeof(int)*100);//分配可以放得下100个整数的内存空间。 |
|
1
2
3
4
5
|
char*ptr;if((ptr=(char*)malloc(0))==NULL)puts("Gotanullpointer");elseputs("Gotavalidpointer"); |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
typedefstructdata_type{intage;charname[20];}data;data*bob=NULL;bob=(data*)malloc(sizeof(data));if(bob!=NULL){bob->age=22;strcpy(bob->name,"Robert");printf("%sis%dyearsold\n",bob->name,bob->age);}else{printf("mallocerror!\n");exit(-1);}free(bob);bob=NULL; |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
例1:#include<stdio.h>#include<malloc.h>#defineMAX100000000intmain(void){int*a[MAX]={NULL};inti;for(i=0;i<MAX;i++){a[i]=(int*)malloc(MAX);}return0;} |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#include"stdio.h"#include"malloc.h"//malloc()函数被包含在malloc.h里面intmain(void){char*a=NULL;//声明一个指向a的char*类型的指针a=(char*)malloc(100*sizeof(char));//使用malloc分配内存的首地址,然后赋值给aif(!a)//如果malloc失败,可以得到一些log{perror("malloc");return-1;}sprintf(a,"%s","HelloWorld\n");//"HelloWorld\n"写入a指向的地址printf("%s\n",a);//输出用户输入的数据free(a);//释放掉使用的内存地址return0;//例2有无内存泄露?}===============================例1:对malloc申请之后没有检测返回值;例2:检测malloc返回值条件有误。 |
标签:style http color 使用 io ar for 文件 数据
原文地址:http://www.cnblogs.com/getyoulove/p/3945197.html