[英]Run-Time Check Failure #2 - Stack around the variable 'c2d' was corrupted. with c++
[英]c++ “Run-Time Check Failure #2 - Stack around the variable 'pair' was corrupted.”
嗨,我對編程很新,我開始搞亂二維數組。 我得到了這個運行時錯誤“運行時檢查失敗#2 - 變量'對'周圍的堆棧已損壞。” 如果有人能幫助我,那將非常感謝。
#include<stdio.h>
#include<iostream>
int main(void)
{
int pair[2][2];
pair[0][0] = 1;
pair[0][1] = 1;
pair[0][2] = 1;
pair[1][0] = 0;
pair[1][1] = 0;
pair[1][2] = 0;
pair[2][0] = 0;
pair[2][1] = 0;
pair[2][2] = 0;
if((pair[0][0] == 1 && pair[0][1] == 1 && pair[0][2] == 1) || (pair[0][0] == 2 && pair[0][1] == 2 && pair[0][2] == 2))
{
printf("Match!\n");
system("PAUSE");
}
else
{
if((pair[1][0] == 1 && pair[1][1] == 1 && pair[1][2] == 1) || (pair[1][0] == 2 && pair[1][1] == 2 && pair[1][2] == 2))
{
printf("Match!\n");
system("PAUSE");
}
else
{
if((pair[2][0] == 1 && pair[2][1] == 1 && pair[2][2] == 1) || (pair[2][0] == 2 && pair[2][1] == 2 && pair[2][2] == 2))
{
printf("Match!\n");
system("PAUSE");
}
else
{
printf("Nope!\n");
system("PAUSE");
}
}
}
}
你的陣列只有2乘2。
int pair[2][2]
所以唯一合法的索引是[0]和[1]。 你要:
int pair[3][3]
這將允許[0] [1]和[2]
你宣布了下面的二維數組:
int pair[2][2];
從我的角度來看,你做不到:
pair[2][1] = 0;
pair[2][2] = 0;
除非你聲明一個更大的數組: int pair[3][3];
你已經定義了2行和2列的2d數組,你試圖訪問第三個..刪除你的代碼中的所有下面的引用(包括if條件)...希望這將有所幫助..
pair[1][2] = 0;
pair[2][0] = 0;
pair[2][1] = 0;
pair[2][2] = 0;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.