有没有办法将 'std::vector 2d' 作为指向 '2d c array' 的指针传递给函数。
我知道您可以将 std::vector 1d 作为指向 c 数组的指针传递给某个函数。例如,函数:
void foo(char* str); //requires the size of str to be 100 chars
std::vector<char> str_;
str_.resize(100);
foo(&str_[0]); //works
我想知道二维向量是否也可以像函数一样
void foo(char** arr_2d);
和矢量
std::vector<std::vector<char>> vector_2d;
我尝试了以下代码,但我收到了一些与堆损坏相关的错误。
std::vector<std::vector<unsigned char>> vector_2d;
//assuming function expects the size of the vector to be 10x10
vector_2d.resize(10);
for(int i=0;i<10;i++)
{
vector_2d[i].resize(10);
}
foo(&vector_2d[0]);//error here