重複の可能性:
C の最大配列サイズ
これが私のコードです。2 つのテキスト ファイルから 2 つの文字列を読み取り、保存します。次に、2 つの 2 次元配列を定義しますが、問題はサイズが非常に限られていることです。たとえば、サイズを 400 と定義すると、コンパイル時にスタック オーバーフローが発生します。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <windows.h>
#include <time.h>
#define BUFSIZE 2000
#define size 400
int main()
{
int a = 0, len1 = 0, len2 = 0;
char string1[BUFSIZE];
char string2[BUFSIZE];
char *suc;
FILE *fp1 = fopen("input1.txt", "r");
FILE *fp2 = fopen("input2.txt", "r");
if ((fp1 == 0)||(fp2 == 0))
{
fprintf(stderr, "Error while opening");
return 0;
}
suc = fgets(string1, BUFSIZE, fp1);
if (!suc) {
// fgets failed, what now? exit?
return EXIT_FAILURE;
}
suc = fgets(string2, BUFSIZE, fp2);
if (!suc) {
// see above
return EXIT_FAILURE;
}
len1=strlen(string1);
len2=strlen(string2);
int LCSLength[size][size];
for(int i=0;i<size;i++)
{
for(int j=0;j<size;j++)
{
LCSLength[i][j]=0;
}
}
int index[size][size];
for(int i=0;i<size;i++)
{
for(int j=0;j<size;j++)
{
index[i][j]=0;
}
}
printf("The two strings are: \n\n");
printf("%s\n", string1);
printf("The length is %d\n\n", len1);
printf("%s\n", string2);
printf("The length is %d\n\n", len2);
int x=0;
scanf("%d", &x);
fclose(fp1);
fclose(fp2);
return 0;
}
それは私のコンパイラと関係がありますか? MSビジュアルC++ 2010 Expressです。前もって感謝します。