现在的位置: 首页 > 综合 > 正文

[C_8] typedef & 内存分配

2014年08月29日 ⁄ 综合 ⁄ 共 653字 ⁄ 字号 评论关闭

13 typedef

13.1 函数指针重命名

int (*x (void(*p)( ) )) (char);//返回类型int(*)(char) 函数名 x 形参 void(*p)()

变量x定义为一个函数

替换:

typedef void (*T)(); //定义T为指向void func()函数的指针

typedef int (*U)(char); //定义U为指向int func(char)函数的指针

U x(T p);


13.2 数组指针重命名

typedef a ARR[10]; //ARR表示a[10]

ARR b;

函数也是这种形式写


14 堆内存的分配及相关函数

void* malloc(size bytes);

void *memset(void *s, int c, size_t n);//地址,数值(0),大小

void* calloc(size_t nmemb,size_t size); //第一个参数是元素的个数第二个参数是每个元素的所占的字节数,为数组分配,初始化为0

void * realloc(void* ptr,size_t size); //重新分配,但不会初始化为0

void free(void *ptr); //释放--> realloc (地址,0)

double* p=malloc(sizeof(double));//可以把返回的void类型赋值double类型,C允许,C++更严格,所以最好强制类型转换一下

double *p=(double*)malloc(sizeof(double));

if(p==NULL) //每次分配需判定是否成功
printf("申请空间失败\n");

抱歉!评论已关闭.