我正在研究最大堆,其中有一个createheap函数。其中,有一个像这样的for循环
for (i = 0; i < capacity; i++) {
h->arr[i] = nums[i];
}
如果 nums 的大小不等于容量,那么变量 i 给出 nums 的大小还是等于容量? (for 循环运行直到 i 等于容量,对吧?)
...for 循环一直运行直到 i 等于容量,对吧?
没有。
当
capacity
超过“nums的大小”时,一旦i
等于“nums的大小”,进一步的迭代会导致未定义的行为(UB)。任何事情都可能发生。