的內部我有一個C++向量:C++指針浮子矢量
vector<float> floats;
後來,這種載體被初始化。我不知道矢量容器的內部內容是什麼,但我想知道是否有可能返回一個指向浮點數組的地方的指針。具體而言,我使用的是CUDA,我需要將指針傳遞給一組浮點數。我無法通過它的矢量。有沒有一種方法,我可以這樣做
float *dapointer = &vector[0];
或這樣的事情?我希望能夠寫它,以及像
dapointer[some index] = 4;
我知道這違反了向量的點,但該矢量在程序其他許多地方用於「向量的目的」,但我需要CUDA才能夠訪問數據。我不想改變我所有的其他代碼來使用數組而不是矢量。
你的第一行是完全正確的。由於運算符'[]'包含解引用,因此你的第二個需要丟失前導'*'。 – 2012-08-04 16:06:02
您仍然需要固定由矢量分配的主機內存(危險),使用cudaMemcpy將內容複製到GPU緩衝區,或者定義自己的std :: vector分配器,該分配器始終引腳內存。如果內存數組很大,那麼最好的方法是複製你所在的數組部分。 – 2012-08-04 22:46:47