C++ 运行时检查失败#2-围绕变量';v';腐败
当我运行代码时,会显示此错误消息:C++ 运行时检查失败#2-围绕变量';v';腐败,c++,C++,当我运行代码时,会显示此错误消息: “运行时检查失败#2-变量“v”周围的堆栈已损坏” intmain() { INTV; int*指针=&v; int*pointer1=指针; 对于(int i=0;i
“运行时检查失败#2-变量“v”周围的堆栈已损坏”
intmain()
{
INTV;
int*指针=&v;
int*pointer1=指针;
对于(int i=0;i<5;i++)
{
*指针=i;
指针++;
}
指针=指针1;
对于(int i=0;i<5;i++)
{
问哪个编译器?那么,你的问题是什么?你的第一个循环明显地破坏了v
周围的内存。事实上,它似乎是故意编写来破坏它的。Visual Studio 2015pointer++;
将指针前进了sizeof(int)
超过v
地址的字节。哦,我明白了。谢谢,或者可以用i<1
替换循环条件来解决。如果不知道OP真正想做什么,就无法知道问题的正确解决方案。只需尝试在不使用基本方法的情况下创建一个数组
int main()
{
int v;
int* pointer = &v;
int *pointer1 = pointer;
for (int i = 0; i < 5; i++)
{
*pointer = i;
pointer++;
}
pointer = pointer1;
for (int i = 0; i < 5; i++)
{
cout << *pointer << endl;
pointer++;
}
system("PAUSE");
return 0;
} //The compiler catch error here.
int v; // reserved space for 1 integer
for (int i = 0; i < 5; i++) // for the next 5 integers...
{
*pointer = i; // Write the value of I to the current integer
pointer++; // Move to next integer
}
int v[5];