我有一个多维数组,我试图得到每一列的长度,但是它对所有列都返回20。
int buttons[16][5] = {{0, 4, 1},{1, 0, 2, 5},{2, 1, 3, 6},{3, 2, 7},{4,0,5,8},{5,1,4,6,9},{6,2,5,7,10},{7,3,6,11},{8,4,9,12},{9,5,8,10,13},{10,6,9,11,14},{11,7,10,15},{12,8,13},{13,9,12,14},{14,10,13,15},{15,11,14}};
sizeof(buttons[0]);
2条答案
按热度按时间kxxlusnw1#
您正在声明一个C样式数组,其中每个元素都是一个5个int的数组。因此,使用
sizeof(buttons[0])
时,您将获得5个int的大小。通常,int的大小为4字节,因此您将获得20。只有buttons[0]
具有3个元素:实际上,在您的代码中,您只初始化了buttons[0]
的前3个元素。如果你想要一个多维数组,其中每个"列"都有不同的大小,你最好使用
std::vector
,它可以容纳可变大小的数组,然后size()
会给你实际的元素数。示例代码:
更好的是,您可以使用
vector
的vector
:vhmi4jdf2#
你不能用数组来做。你可以用向量来做: