永发信息网

#define getpch(type) (type*)malloc(sizeof(type))什么意思

答案:4  悬赏:0  手机版
解决时间 2021-03-10 10:55
  • 提问者网友:藍了天白赴美
  • 2021-03-09 19:51
#define getpch(type) (type*)malloc(sizeof(type))什么意思
最佳答案
  • 五星知识达人网友:三千妖杀
  • 2021-03-09 20:55
这是一个宏定义,要做的就是安照 type 类型申请一个 type 大小的内存,而将指针返回。
例如(以下按win32情况说明):
int *d = getpch(int);  //申请int指针
double *d = getpch(double );  // 申请double指针
char *d = getpch(char );  // 申请char 指针
这些内存系统不会释放,用完后要用free 释放。

全部回答
  • 1楼网友:何以畏孤独
  • 2021-03-09 23:25
定义一个宏getpch,用于按指定类型的大小分配内存,并转换为该类型的指针
  • 2楼网友:低血压的长颈鹿
  • 2021-03-09 23:04
在堆(heap)上分配一个指定的类型(type)大小的内存,并将分配到的内存指针,强制转换为该类型的指针。
例如:getpch(double) 在编译时将被替换成 (double*) malloc (sizeof (double)),
假设double类型的大小是8字节,那么 sizeof (double) 的值就是8。
(double*) malloc (sizeof (double)) 将被推演为 (double*) malloc (8)。
malloc 是堆内存分配函数,其参数是需要分配的字节数,函数返回分配到的内存首地址,类型是 void*。
(double*) 的意思是把 malloc 返回的 void* 强制转换为 double*。
  • 3楼网友:白昼之月
  • 2021-03-09 21:44

这个叫宏函数。如果具体需要了解,百度这个名词就可以。
当你调用:#define getpch(type) (type*)malloc(sizeof(type))
int * i = getpch(int);
就相当于:int * i = (int*)malloc(sizeof(int));
宏,其实就是编译前替换。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯