我是新來的指針/內存操作,並且正在處理一些示例程序。我想在C++中將二維數組分配到連續的內存塊中。我知道我必須創建一個2D數組大小的緩衝區。我寫了一小段代碼,它創建了緩衝區併爲2D數組賦值,但我不知道如何將數組值放入緩衝區。任何人都可以給我一個想法做什麼?我已經研究了一下,但根據我的理解,找不到解釋過程的任何內容。我知道向量可能是一個更好的選擇,但我希望在處理之前掌握數組操作。在C++中爲多維數組分配一塊內存
謝謝!
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int dyn_array[5][3];
int i;
int j;
srand(time(NULL));
//Need to create a pointer to a block of memory to place the 2D array into
int* buffer=new int[5*3]; //pointer to a new int array of designated size
//Now need to assign each array element and send each element of the array into the buffer
for(i=0;i<5;i++)
{
for(j=0;j<3;j++)
{
dyn_array[i][j]=rand()%40;
cout<<"dyn array ["<<i<<"]["<<j<<"] is: "<<dyn_array[i][j]<<endl;
}
}
return 0;
}
'buffer [i * 3 + j] = dyn_array [i] [j]'? – 2012-04-02 22:19:42