将数据分配给了数组分配,但程序显示了以缓冲区超支的输出
Assigned data to out of array allocation but program show output with a buffer overrun has occurred
我写了一个示例程序,如下:
当程序执行完成此错误时,发生"缓冲区超支已有 发生了"。
我将数据分配给了数组分配,但是我在 代码。
程序编译并在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 中,您不需要支付不需要的费用。因此,在编译时间和运行时均未检查数组边界。如果您足够幸运,则在分配区域之外分配内存不会立即产生后果,并且分配的值仍在那里。
相关文章:
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 如何分配适合容纳 T 类型对象的缓冲区(可能过度对齐、可能有运算符 new 等)
- char p[0]表示自动分配的缓冲区还是安全指针
- 有没有办法自动实现 sprintf 的缓冲区分配?
- 线程函数无法从堆上分配的缓冲区中读取字符
- 如何正确分配Fuse ReadDir()的缓冲区
- 将数据分配给了数组分配,但程序显示了以缓冲区超支的输出
- C++:当我将值分配给缓冲区时,它不起作用
- 如何在 OpenCL 中使用缓冲区分配和映射内存机制
- 从C 中的函数中动态分配的缓冲区返回的最佳模式是什么?
- 了解循环缓冲区实现的内存分配性质
- 尝试为图像缓冲区分配内存时 ptr 值错误
- Sprintf 缓冲区问题,错误分配给字符数组
- Vulkan中动态统一缓冲区的缓冲区内存分配
- 如何分配可执行的内存缓冲区
- C - 分配一个未签名的炭缓冲区,然后用字符串填充
- 包含溢出缓冲区的堆栈分配变量,也称为缓冲区
- 如何确定分配缓冲区的大小
- 动态分配缓冲区(字符字符串)大小 =i;使用马洛克
- 在C中连接两个字符串并动态分配缓冲区