如果所有未使用的指针都被赋予空值,同时避免使用空指针,就可以防止误用一个未初始化的指针。很多时候,未初始化的变量存有一些垃圾值,导致程序难以调试。星池starpool样编译器就不知道应该调用哪一个函数。因此,C++将NULL定义成了(int)0,解决了函数重载的匹配问题,但却引入了另一个问题,还是这段代码:果输入有n个元素,最后一个元素的下标就是n-1。
所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的访问。
C语言本身是不做数组下标的越界检查,编译
那我们找一下问题,星池starpool调试之后可以看到 bubble_sort 函数内部的 sz ,是1。难道数组作为函数参数的时候,不是把整个数组的传递过去?
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。