向CUDA中拷入二維指標

2021-10-01 18:31:44 字數 1183 閱讀 9839

21

// b[2][10]

22int

**b=

(int**

)malloc(2

*sizeof

(int*)

);23int

*data =

(int*)

malloc(2

*10*sizeof

(int))

;24for(

int i=

0;i<

20;i++

)25 data[i]

= i;

26// 將資料複製到二維的指標變數中,是資料賦值嗎?還是位址哦?我的觀點會在最後給出。

27for

(int i=

0;i<

2;i++

)28 b[i]=10

*i + data;

之後,二維指標變數b,就可以用b的二維陣列訪問形式來訪問你想要的那個元素了。

30

for(

int i=

0;i<

2;i++

)34 cout << endl;

35}

在gpu中開闢及拷貝記憶體

36

cudamalloc((

void**

)(&dev_b)

, rows*

sizeof

(int*)

);37cudamalloc((

void**

)(&dev_data)

, rows*cols*

sizeof

(int))

;38cudamemcpy((

void*)

(dev_b),(

void*)

(b),2*

sizeof

(int*)

, cudamemcpyhosttodevice)

;

現在核中就可以用二維陣列的方式對指標進行訪問

__global__ void

kernelfun

(int

**dev_b)

//我們就作個自增1的事情吧

}

二維陣列與二維指標

1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...

二維指標和二維陣列

二維指標和二維陣列有三種形式 1,type ptr 2,type ptr或者type prt 3,type prt 三種形式意思相近,也有區別。首先三種形式都能表示二維的資料結構。1,type ptr 表示乙個指向指標的指標 但是在一開始宣告的時候 type ptr ptr到底指向幾個指標是不知道的...

二維陣列與二維指標

一.指標與二維陣列 以martix 3 4 為例 1.二維陣列的本質 int martix 3 4 int martix 3 4 int 4 martix 3 令int 4 為type,type martix 3 為含有三個元素的陣列,每乙個元素型別為int 4 int 4 是乙個擁有4個int型別...