當無法知道內存具體位置的時候,又想綁定真正的內存空間,就需要用到動態內存分配。
也就是,那個用了很多星星和括弧看起來很複雜其實很輕易近人的函數,我們稱之爲malloc。
下面主要講得到malloc的結果之後的使用。
#include<iostream>
#include<malloc.h>
using namespace std;
#define NUM 3
int main()
{
int *data = (int*)malloc(sizeof(int)*NUM); //動態分配內存,得到的data是指向分配內存的首指針;這裏分配了一個含三個int的內存塊;
data[0] = 1; //instead we can use *data = 1;
data[1] = 20; //instead we can use *(data+1) = 20;
//but *(data)+1 = 20 is not allowed;
data[2] = 300;
cout<<*data<<endl
<<*(data+1)<<endl
<<*(data+2)<<endl;
return 0;
}
這裏的data是指向內存塊的首指針,可以使用data[i] 或者*(data+i) 來獲取指向內存塊裏其他位置的指針,兩者效果一樣。