关于网友提出的“ VC6 二维字符数组 输出WINDOWS报错”问题疑问,本网通过在网上对“ VC6 二维字符数组 输出WINDOWS报错”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: VC6 二维字符数组 输出WINDOWS报错描述:
#include
#include "string.h"
int main()
{
char a[2][20];
int i,j;
for(i=0;i<=2;i++)
gets(a[i]);
for(i=0;i<=2;i++)
puts(a[i]);
}
我输入3行字符后,屏幕输出我刚才输入的3行字符,之后WINDOWS的自动报错窗口就弹了出来,说我这个程序遇到问题需要关闭。怎么回事呢?
解决方案1:
char a[2][20];
int i,j;
for(i=0;i<=2;i++)//for(i=0;i<2;i++)
gets(a[i]);
for(i=0;i<=2;i++)//for(i=0;i<2;i++)
puts(a[i]);
按照我//后的改就ok了,你一共就2个串,循环时用了三个
char a[2][20];
你只定义了2个字符串,输入三个就数组越界了
改:char a[3][20];