我有兩個變量:可以將&my_boost_array_variable [2]傳遞給期望void *的C函數嗎?
boost::array my_boost_array_variable_1<float, 3>;
boost::array my_boost_array_variable_2<float, 3>;
現在我想調用C函數具有以下簽名:
我想通過我的my_boost_array_variable_1
和my_boost_array_variable_2
特定元素的地址作爲MPI_Allreduce的第一和第二個參數:
MPI_Allreduce(&my_boost_array_variable_1[2],
&my_boost_array_variable_2[2], ...
還是應該我寧願做:
MPI_Allreduce(my_boost_array_variable_1.c_array() + 2,
my_boost_array_variable_2.c_array() + 2, ...
更新: C函數期望一個連續的數據塊,它從void * sendbuf開始。這裏的問題是這兩個電話在這方面是否正確。 & my_boost_array_variable_1 [2]指向與my_boost_array_variable_1.c_array()+ 2相同的位置嗎?這些電話是否相同?