关于vs未处理的异常: 0xC00000FD: Stack overflow
出现此异常的原因是因为:栈溢出,也就是在栈上申请的空间太大了,一般都是在用数组时,申请的空间太大。
解决方法:1是:
2,第二种方法是:动态申请内存空间。
1.只定义个一维的就可以了
char *array;
array = new char[x*y];
访问的时候*(array+i*y+j)表示array[i][j]
2.定义一个二维数组
char **array1
array1 = new char *[x];
for(i=0;i<x;++i)
array1[i] = new char[y];
...用的时候可以直接array1[i][j]
注意delete
for(i=0;i<x;++i)
delete[] array1[i];
delete[] array1;
3.要用的方便,可以在array上加定义一个指针变量。
char *array = new char[x*y];
char **array2;
array2 = new char *[x];
for(int i=0;i<x;++i)
array2[i] = array + i*y;
...用起来还是array2[i][j],但二维数组已经是一块连续内存,这是和第二种方法区别的地方,感觉这是比较适合用二维数组的习惯。
delete[] array2;
参考网址:
http://bbs.csdn.net/topics/220026681
http://www.cnblogs.com/xiangwengao/archive/2012/03/16/2399888.html