void
被翻译为"无类型",相应的void *
为"无类型指针"
void* allocateMemory(size_t size) {
return malloc(size);
}
void* allocateMemory(size_t size) {
return malloc(size);
}
在这个例子中,函数 allocateMemory
接收一个 size_t
类型的参数,表示需要分配的内存大小。函数使用 malloc
函数动态分配内存,并将返回的指针类型转换为 void*
,然后返回。
oid* 指针可以指向任意类型的数据
可以指向任意类型的数据,就是说可以用任意类型的指针对 void* 指针对 void* 指针赋值。例如:
int* a;
void* p;
p = a;
1
2
3
如果要将 void* 指针 p 赋给其他类型的指针,则需要强制类型转换,就本例而言:a=(int *)p。在内存的分配中我们可以见到 void* 指针使用:内存分配函数 malloc 函数返回的指针就是 void * 型,用户在使用这个指针的时候,要进行强制类型转换,也就是显式说明该指针指向的内存中是存放的什么类型的数据 (int *)malloc(1024) 表示强制规定 malloc 返回的 void* 指针指向的内存中存放的是一个个的 int 型数据。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Colorful___/article/details/133097434