标签: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" ); else puts ( "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> #defineMAX100000000 intmain( 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分配内存的首地址,然后赋值给a if (!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