[問題] vector<T>元素的位址關係跟陣列的不同
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
BCBXE
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
傳遞二維vector時,利用一維的pointer來指向vector
在function裡使用時,是否由於不同維度的vector記憶體不一定連續?
導致pointer在offset的時候沒有移動到正確的位置?
//補充
因為要在BCB下使用CUDA,所以我function是寫在.cu 然後包成dll 在用BCB呼叫
CUDA好像不能用stl vector 所以我才會用pointer去指向vector
餵入的資料(Input):
vector < vector <int> > a;
a.resize(10);
for( int i=0; i<a.size(); i++ )
{
a[i].resize(10);
}
compute(&a[0][0]);
cout << a[2][2]; //不等於1
void compute(int *b)
{
//取得a[2][2]的值
b[2*10+2]=1;
}
預期的正確結果(Expected Output):
1
錯誤結果(Wrong Output):
每次執行都不一樣
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.235.209.60
推
06/06 02:32, , 1F
06/06 02:32, 1F
→
06/06 02:37, , 2F
06/06 02:37, 2F
→
06/06 06:08, , 3F
06/06 06:08, 3F
→
06/06 10:39, , 4F
06/06 10:39, 4F
→
06/06 10:47, , 5F
06/06 10:47, 5F
→
06/06 11:56, , 6F
06/06 11:56, 6F
→
06/06 14:20, , 7F
06/06 14:20, 7F
→
06/06 16:15, , 8F
06/06 16:15, 8F
→
06/06 17:28, , 9F
06/06 17:28, 9F
※ 編輯: sd016808 來自: 220.134.147.231 (06/06 17:33)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):