gpt4 book ai didi

c - 如何知道指针数组中指针的长度是多少?

转载 作者:行者123 更新时间:2023-11-30 14:58:40 24 4
gpt4 key购买 nike

我有5个数组和1个指针数组,我需要知道指针数组中每个数组的长度是多少(而不是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 };

最佳答案

一旦数组被转换为指针(如数组arr6的元素),就无法找到其中的元素数量(在原始数组)。简化版本是:

int arr1[] = { 3, 9, 6, 7 };
int *p = arr1;
/* Now, there's no way to know the number of elements in arr1 solely
from the pointer 'p' */

要么您自己保留尺寸信息。一种方法是使用另一个数组来存储大小:

int* arr6[] = { arr1, arr2, arr3, arr4, arr5 };
size_t sz_arr6[] = {sizeof arr1/sizeof arr1[0], sizeof arr2/sizeof arr2[0], ...};

这个你知道index,你就知道sz_arr6[i]对应于arr6[i]中的元素个数等等。

关于c - 如何知道指针数组中指针的长度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43234498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com