栈溢出问题
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main(void)
{
FILE *fp;
char a[2][80]={0},i=0;
if((fp = fopen("a.txt", "w")) == NULL){
printf("Can't Open File!");
exit(0);
}
a[0][0]='c';
a[1][0]='b';
if(!feof(fp))
{
for(i=0;i<2;i++)
{
fprintf(fp,"%s ",a[i][0]);//我知道表示字符串要用数组名即a[i],问题是为什么用
// a[i][0]编译器不报错,运行时怎么溢出的啊?怎么把这过程搞清楚啊?
}
}
fclose(fp);
}
调试到 fprintf(fp,"%s ",a[i][0]);这一步就如图所示,百度了一下是栈溢出
unhandled exception in 新建文本文档.exe:0xc00000005:Access Violation.