在C++中定义二维数组
Defining 2D array in C++
根据我的理解,我们需要在c++中为2d数组定义一个常量行和一个常量列大小,除非我们正在动态分配它。
我尝试了这段代码,它没有任何错误。
std::vector<std::string> strs;
for(int i ; i < 10; ++i)
{
strs.push_back("This is a test"+ std::to_string(i));
}
int length = 0;
for(int i ; i < 10; ++i)
{
if(strs[i].size() > length)
length = strs[i].size();
}
char c[20][length + 1];
for(int i ; i < 20; ++i)
{
memcpy(c[i], "Test", 5);
cout << c[i] << endl;
}
有人能解释一下为什么在这里定义一个可变长度的2D字符数组是可能的吗?
谢谢K
char c[20][length + 1];
如果length
不是编译时常数,则不是合法的C++。某些编译器,如g++,允许将其作为扩展。
相关文章:
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++ 中动态二维数组的访问冲突
- 遍历二维数组的所有子数组
- 将二维数组的所有元素插入到一维数组中
- 如何在 Visual Studio C++ 11 中运行时定义二维数组?
- 使用二维数组作为一维数组是否正确?可能会导致未定义的行为左右?
- 二维数组传入没有全局定义 (M x N) 的函数
- 具有未定义的第二维的二维数组
- 用C++MATLAB API定义二维数组
- C++ 二维数组定义
- 在C++中定义二维数组
- 二维数组定义
- 定义boost::dynamic_bitset的(一/二)维数组