我正在尝试查找我定义的“标题”结构数组的长度(标题仅包含一些信息 int 成员,如果这与此处相关)。我通过传递fl
、指向数组开头的指针和 来idx
尝试这样fl_tails
做指向末尾的指针):
int arr_size(header* fl, int idx){
int cnt = 1; /* Anything passed guaranteed to have at least 1 */
while(fl != fl_tails[idx]){
fl++;
cnt++;
}
}
我认为这只会推进fl
指针并正确生成计数,直到到达终点,但它进入了无限循环。我想知道这是由这个函数中的某些东西引起的,还是我需要在其他地方找到的东西引起的。当我将开头和结尾的地址打印为无符号整数时,它们似乎是无害的——分别是 16777216 和 16777344。也许我对header
结构及其大小/对台阶的影响的理解也有问题?