我如何找到动态分配的数组的不同行的大小
How do I find size of varying rows of a dynamically allocated array?
我有以下代码:
int *exceptions[7];
int a[] = {1, 4, 11, 13};
int b[] = {5, 6, 11, 12, 14, 15};
int c[] = {2, 12, 14, 15};
int d[] = {1, 4, 7, 9, 10, 15};
int e[] = {1, 3, 4, 5, 7, 9};
int f[] = {1, 2, 3, 7, 13};
int g[] = {0, 1, 7, 12};
exceptions[0] = a;
exceptions[1] = b;
exceptions[2] = c;
exceptions[3] = d;
exceptions[4] = e;
exceptions[5] = f;
exceptions[6] = g;
exception[0]
和exception[1]
的大小分别为4
和6
。
这是我的代码:
short size = sizeof(exceptions[1]) / sizeof(exceptions[1][0]);
,但我每行都得到2
。如何解决此问题?
short size = sizeof(exceptions[1]) / sizeof(exceptions[1][0]);
有效地做与
相同 short size = sizeof(int*) / sizeof(int);
在64位平台上,很可能会产生2
。
我该如何解决这个问题?
使用一些C 标准容器,例如std::vector<std::vector<int>>
:
std::vector<std::vector<int>> exceptions {
{1, 4, 11, 13},
{5, 6, 11, 12, 14, 15},
{2, 12, 14, 15},
{1, 4, 7, 9, 10, 15},
{1, 3, 4, 5, 7, 9},
{1, 2, 3, 7, 13},
{0, 1, 7, 12},
}
您的陈述将成为:
short size = exceptions[0].size();
size = exceptions[1].size();
(对于所需的一切)
最好的补救措施是使用标准模板库中提供的向量。它们具有大小()函数,您可以使用,并且比数组更具用途。
相关文章:
- C++找出覆盖同一行的数组
- C++ 如何找出数组中最多的连续数字?
- 我无法用矢量或数组找出指针
- 如何使该程序在数组中打印搜索字符的索引,否则将找不到它
- 找出堆栈数组中的下一个整数是否相同
- 无法找出此错误(将结构数组传递给函数):线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x1)
- C 搜索数组以获取一个数字,但如果找不到该数组,则不会触发其他语句
- 如何修改 Kadane 算法以找出贡献最大总和的子数组元素?
- 找不到将数组中的元素数存储在函数内的 int 变量中的方法
- 找不到标识符,尝试在 C++ 中显示数组值
- 找出数组中有多少不同的浮点值
- c ++,数组的值在某处意外变化,你能帮我找出在哪里吗?
- 我如何找出数组中的哪个元素具有最高值
- 找出所有给定数组中公共元素的最佳算法
- 我找不到导致我的数组在运行两次案例并退出后损坏的错误
- 为什么 Cppcheck 找不到这个明显的数组越界错误
- 找出哪个对象/数组使用最多的堆栈内存
- 动态对象数组在C++和Java中有何不同?
- 给定一个整数数组,找出两个数字,使它们加起来等于一个特定的目标数
- ld:在结构数组上找不到体系结构x86_64错误的符号