将数据分配给了数组分配,但程序显示了以缓冲区超支的输出

Assigned data to out of array allocation but program show output with a buffer overrun has occurred

本文关键字:分配 缓冲区 显示 输出 数据 数组 程序      更新时间:2023-10-16

我写了一个示例程序,如下:
当程序执行完成此错误时,发生"缓冲区超支已有 发生了"。
我将数据分配给了数组分配,但是我在 代码。
程序编译并在VS2010上运行

void check(int arr[])  
{  
arr[0]=100;  
arr[8]=103;  
arr[10]=102;  
cout<<arr[10]<<endl; // output show 102  
}  
int main()  
{  
int arr[] = {2, 3, 4, 10, 40, 56, 69, 89, 99};  
check(arr);  
arr[10]=102;  
cout<<arr[10]<<endl; // output show 102  
return 0;  
}

在C 中,您不需要支付不需要的费用。因此,在编译时间和运行时均未检查数组边界。如果您足够幸运,则在分配区域之外分配内存不会立即产生后果,并且分配的值仍在那里。