我从Wikibooks(作者:John Green)中复制了quicksort实现。我添加了一个小包装器对其进行测试。但是,执行失败时出现索引超出范围的错误,这似乎没有意义。
直接输入在断点处显示以下正确输出:
char str1[20] = "";
后者只是将VarType转换为字符串的函数。类型似乎很好。
?UBound(VA_array)
7
?V_Low1
1
?V_High1
7
?(V_Low1 + V_High1) / 2
4
?dbgEchoVarType(VarType(VA_array))
vbArray: Array of type vbVariant: (used only with array of variants)
所选内容在一列中包含7个单元格,每个单元格包含一个恒定的整数值。
我不明白为什么4被认为是越界索引。 上面代码中的调试消息显示,该代码在第一次调用时失败,而不是任何后续调用。
怎么了?