运行时出现数组越界,这是怎么导致的?我的思路是指针遍历时遇到0就将其不断交换至数组最后
您好,当您的程序运行到 j = length-1 的时候,j+1就等于 length 了,而数组并没有开到 length,所以数组就越界了,希望对您有帮助。
修改方案:将 j < length 改为 j < length-1,将 i < length 也改为 i < length-1 。
nums【j+1】会超过nums一个元素
数组索引是从0开始的,所以访问末尾元素要使用ArrayName[length-1]的形式
num[j+1]当j=length-1时肯定越界崩溃啊!
索引是从0开始计数的,比如10位,索引依此是0,1,2,3,4,5,6,7,8,9
而不是1,2,3,4,5,6,7,8,9,10
所以取到10就越界了
1、sorted[p1+p2] = nums1[p1++];
上述写法有问题,因为你会搞不清先p1++还是先p1+p2,最好还是先找个int tem承接。
2、好几次犯此类错误了。判断里面应该是==两个等号。我老写成1个等号=。服了!!
3、for(;xxx;)中的xxx和while(xxx)中的xxx一样,都是需要满足才能往下走的,别搞晕了!!!