2
我很困惑將2D陣列轉換爲1D陣列。 我想以寬度,行和列格式的形式爲「a11」(在(1,1))編寫一個相鄰的8個元素,而不使用for循環。陣列2D到1D轉換和混淆
|<--Width--->|
cols
____________
| a00 a01 a02
rows | a10 a11 a12
| a20 a21 a22
我想以這樣的方式
a00 = pSrc[(cols-1)+ (rows - 1)*width];
a02 = pSrc[(cols-1)+ (rows + 1)*width];
a10 = pSrc[cols+ (rows -1)*width];
a12 = pSrc[cols+ (rows +1)*width];
a20 = pSrc[(cols+1)+ (rows - 1)*width];
a22 = pSrc[(cols+1)+ (rows + 1)*width];
a01 = pSrc[(cols-1)+ (rows)*width];
a21 = pSrc[(cols+1)+ (rows)*width];
但我認爲我做了一些錯誤。可以任何一個可以幫助我在這。
爲了您的信息'a [i] [j] = *(*(a + i)+ j)'。 – 2014-09-30 04:27:25
我不想使用for循環,因爲我正在用OpenCL編寫代碼。我正在用內核代碼替換循環。能否以上述格式給出我提到的答案 – Ashwin 2014-09-30 04:41:21
如何定義pSrc?你的例子中'cols'設置爲'1'(並且'rows'設置爲'1')? – 2014-09-30 04:58:57