gpt4 book ai didi

c - 如何求数组的长度

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

我制作了一个直方图并尝试找到直方图的长度。但直方图的长度给了我错误的输出。首先是我的代码。

int *n = calloc(l,sizeof(int));
for (int i = 0; i < l; i++) {
scanf("%d", &n[i]);
}
int *hist = (int*) malloc(sizeof(int));

for (int i = 0; i<l; i++){
hist[n[i]]++;
hist = realloc(hist, sizeof(int));
}

//length of histogram array
int histlen = sizeof(hist)/sizeof(hist[0]);

printf("legnth : %d\n", histlen);

所以

input: 3 3 3 2 2 1

输出应该是

length:3

但是我的代码给了我

length:2

问题是什么?

最佳答案

我建议创建一个结构数组,它将保存长度和指向数组的指针。

struct array {
int length;
int* values;
}

然后在代码中,您可以使用 arr.length 获取长度,并使用 arr.values 获取指针。

关于c - 如何求数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59262772/

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