後,我在記憶中這個函數返回一個void *的指針一大塊:Chaning返回的指針,它已經返回在C++
memory.cpp:
int mem[1000];
int* pointers[100];
int start_index = 100;
void* allocate(int size) {
pointers[0] = &mem[start_index];
return (void *) pointers[0];
}
main.cpp中:
int* arr = (int*) allocate(50); // allocate array of size 50 starting at mem[100]
arr[0] = 62; // changes mem[100] to 62
現在我想讓這個函數的用戶使用mem數組的不同位置,而不需要分配函數的用戶被通知(假設它沒有問題,我們會丟失數據)。
我不能這樣做嗎?
memory.cpp:
pointers[0] = &mem[200];
後這一行memory.cpp執行,我想arr[0]
點mem[200]
。 有沒有可能不改變分配函數的原型?
謝謝
對,修復它在問題描述中。 – Allen1200 2013-04-08 05:52:12