计算数组的实际长度
今天练习大数计算时出现,数组越界问题,经过调试后发现原来是数组越界问题。在这里本人就强调一下使用length算出的是数组开辟内存空间的长度,而不是数组实际使用的长度。比如说你申请了int array[] = new int[100],但是你只输入了10个整数时。如果用length求数组长度,显示的长度是100,而不是10,如果想求数组的实际长度10,那么可以这样做
for( num =0;num<result.length;num++) { if(result[num]=='\0') break; }
出现错误的代码:
1 int num =(inputNumA.length + inputNumB.length); 2 for(i = num; i > 1 ; i--){ 3 ; 4 if( (result[i] > 10)){// 5 n = result[i] % 10; 6 result[i-1] += result[i] / 10; 7 result[i] = n; 8 } 9 //else 10 //result[i] = result[i]; 11
原因是数组的长度计算错误,数组越界!