【发布时间】:2017-04-05 23:07:33
【问题描述】:
我有 5 个数组和一个指针数组,我需要知道指针数组中每个数组的长度(不是 sizeof)。 我是怎么做到的?
int arr1[] = { 3, 9, 6, 7 };
int arr2[] = { 2, 5, 5 };
int arr3[] = { 0 };
int arr4[] = { 1, 6 };
int arr5[] = { 4, 5, 6, 2, 1 };
int* arr6[] = { arr1, arr2, arr3, arr4, arr5 };
【问题讨论】:
-
基于这个作业的所有以前的版本,不是在数组本身中找到答案吗?
-
恐怕你不能。一旦转换为
int*,它们的大小将不可撤销地丢失给编译器。在运行时,整数数组没有大小的概念。您应该:将它们的大小记录在其他地方,或者隐式编码(例如,最后一个元素应该始终是一些指定的,否则不使用的常量,如0或-1)。 -
不是很重复,但是这个问题似乎对这个作业有更好的理解stackoverflow.com/questions/43191792/…