gpt4 book ai didi

c - 这段 C 代码是做什么的?

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:21 25 4
gpt4 key购买 nike

我需要知道以下 c 函数的输出

bool GC_search_memaddr (void* high_add, void* low_add, void* search_add)
{
void ** gc_ptr_to_ptr;
void * gc_temp;
gc_temp = high_add;
while( gc_temp > low_add )
{
gc_temp = gc_temp - 1;
gc_ptr_to_ptr = (void**)gc_temp;
if ((*gc_ptr_to_ptr) == search_add)
return True;
}
return False;
}

在此所有 3 个输入函数都是指针。我认为这只是一个简单的基于增量的搜索函数,但问题是如果将它们全部更改为 int,函数的输出有时会发生变化。任何人都可以告诉这里到底发生了什么......

最佳答案

指针运算可能是您的问题。线路:

gc_temp = gc_temp - 1;

将根据编译器决定的 sizeof(void) 来更改 gc_temp 的值。如果将参数和局部变量更改为 int,它们将以 1 为单位进行迭代。打开调试器,看看发生了什么。

关于c - 这段 C 代码是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4209505/

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