C++ 内存池怎么用,例如我先分配一个内存池,然后在程序中分配给一个指针数组一个指定的空间大小
发布网友
发布时间:2022-04-23 19:47
我来回答
共2个回答
热心网友
时间:2023-10-05 12:07
指针变量是一个无符号整数,它存放是目标变量的首地址,比如char *p=“apple” ,不是说p存放了字符串,而是指向字符串的首地址,
首先你要给这个指针确定一个类型
比如,int*p =new int; p指向的就是一个int,有4个字节;
比如 struct Node
{int x;
Node *link;
queue(){x=0;link=NULL;}
}
Node *temp=new Node; p指向的就是一个Node大小的空间
char *p;
p = (char*)malloc(sizeof(char)*100); p分配了100char大小的空间
还有什么不懂的可以追问 你去看下指针动态分配 new delete 以及malloc和free就懂了追问我这个程序需要很多数组,因为是根据读取文件来确定数组大小的,所以应该要用动态数组,但是都是用new来申请,产生很多内存碎片。所以想申请一个内存池,例如用一个指针int *P,申请一个100大小空间,然后再后面这样赋值P[2] = 100;之类的,用结构体来弄,我不是很清楚呢,麻烦你说下
热心网友
时间:2023-10-05 12:07
#include <memory>
int main()
{
std::allocator<int> alloc_int;
int* p = alloc_int.allocate(1);
alloc_int.deallocate(p,1);
}