gpt4 book ai didi

在C中循环数组中的某个范围

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

我有这个代码

int x = 0
int MAX = 21;
int MIN = 18;
char *arr[40];
do{
char* current = cycle(x,arr)
x++;
}while(x<10000000)

我的cycle()当前循环整个数组

unsigned char *cycle(int counter, unsigned char *packets[40]){
int tmp = counter % 40;
return packets[tmp];
}

但我希望它在 [MIN,MAX] 范围内的数组中循环。所以while循环的返回值为:arr[18], arr[19], arr[20], arr[21], arr[18], arr[19]...

知道如何实现吗?我不需要使用全局变量的解决方案。

感谢您的帮助!

最佳答案

尝试这样的事情:

sometype cycle_range(int counter, sometype array[], unsigned min, unsigned max) {

sometype* first = array+min;
unsigned length = max-min+1;

return first[counter % length];
}

这就像您的解决方案一样,但它在 array 中进一步启动 min 元素,并循环遍历 max-min+1 元素,而不是40

(在您的情况下,sometypeunsigned char*,但如果需要,您可以在此处替换其他类型)

关于在C中循环数组中的某个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13681167/

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