力扣==42==ERROR:AddressSanitizer: heap-buffer-overflow on address

出错原因数组越界,或者堆栈溢出。检查循环中的边界条件。
比如在数组nums中,判断和前一个元素是否相等。

for(int L =0; L<count;L ++)
{
   if(nums[L]==nums[L-1]{
   }
}

此时L从0开始,L-1=-1,出现数组越界。
那么应该在添加语句L>0,即

for(int L =0; L<count;L ++)
{
   if( L>0 && nums[L]==nums[L-1]{
   }
}

注意L>0写在nums[L]==nums[L-1]的前面,不然还是会出现数组越界的!!!!!!因为判断语句是自左向右的!!!


版权声明:本文为qq_43363657原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。