使用malloc()結果的兩種方式

當無法知道內存具體位置的時候,又想綁定真正的內存空間,就需要用到動態內存分配

也就是,那個用了很多星星和括弧看起來很複雜其實很輕易近人的函數,我們稱之爲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) 來獲取指向內存塊裏其他位置的指針,兩者效果一樣。


發佈了36 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章