为嵌套数组分配由引用变量指定的内存
Allocating memory specified by a reference variable for nested arrays?
我应该实现一个函数
void foo(string** &grid);
我用新分配的数组或字符串数组填充给定引用。
我做过类似
这样的事情void foo(string** &grid) {
grid = new string[4][4];
}
但是我得到这个错误:
error: cannot convert 'std::string (*)[4] {aka std::basic_string<char> (*)[4]}' to 'std::string** {aka std::basic_string<char>**} in assignment
嗯。
我知道这个错误试图告诉我什么,但我在这里的根本误解是什么,我该如何去做我想做的事情?
谢谢
new string[4][4]
创建了一个指向string[4]
的指针,而不是指向string
的指针。你能得到的最接近的东西是这样的:
grid = new string*[4];
for (int i = 0; i < 4; i++) {
grid[i] = new string[4];
}
但是请注意,进程中创建的16个string
可能并不都连续存储在内存中。
相关文章:
- 当vector是tje全局变量时,c++中vector的内存管理
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 多个"常量引用"变量可以共享同一个内存吗?
- 为什么内存屏障依赖于变量?
- 在内存不足之前,我可以声明多少个 const 变量?
- C++具有模板成员变量的类. 和参数内存输出
- 为什么同一个变量的内存地址不同?
- 分配具有 2D 向量大小的变量的内存
- C++强制变量到一个固定的内存位置
- 循环中的变量被设置为下一个数组的元素始终具有相同的内存地址?
- C++在变量的内存地址上做什么来"deallocate"它?
- 如果不分配内存,我如何能够为变量创建和分配值?
- 为什么我无法获取 MSVS2019 / C++ 中字符或uint8_t变量的内存地址?
- 如果一个变量在它之前释放了另一个(相同的数据类型)变量,如何将其分配给内存?
- 函数,返回变量c++占用的内存位置的大小
- 为什么一个接一个声明的两个变量在内存中不相邻?
- 指向动态内存中结构中的变量时出现问题
- C++函数在endl(内存变量?
- 控制内存变量
- 使用内存变量初始化填充位结构体