我在这个函数中返回一个指向内存块的 void* 指针:
内存.cpp:
int mem[1000];
int* pointers[100];
int start_index = 100;
void* allocate(int size) {
pointers[0] = &mem[start_index];
return (void *) pointers[0];
}
主.cpp:
int* arr = (int*) allocate(50); // allocate array of size 50 starting at mem[100]
arr[0] = 62; // changes mem[100] to 62
现在说我想让这个函数的用户使用内存数组的不同位置,而不通知分配函数的用户(假设我们丢失数据没问题)。
我不能这样做吗?
内存.cpp:
pointers[0] = &mem[200];
在 memory.cpp 中执行此行后,我想arr[0]
指向mem[200]
. 在不改变分配函数原型的情况下这可能吗?
谢谢