c语言编写的程序中数据量一大就会出现出现debug error

#include<stdio.h>#include<stdlib.h>#include<string.h>main(){inti,j=0;char*a,*b,*c;FIL... #include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
int i,j=0;
char *a,*b,*c;

FILE *fp;
long iLen;
if ((fp = fopen("D:\\360Downloads\\solexa_100_170_2 - 副本.fa","r")) == NULL)
{
printf("不能打开文件!\n");
exit(0);
}
fseek(fp, 0L, SEEK_END);
iLen = ftell(fp);
a=(char*)malloc(sizeof(char)*9999);
b=(char*)malloc(sizeof(char)*iLen);
c=(char*)malloc(sizeof(char)*iLen);
b[0]='\0';
c[0]='\0';
rewind(fp);
fgets(a,9999,fp);
while (!feof(fp))
{
strcat(b,a);
fgets(a,9999,fp);
}
strcat(b,a);

for(i=0;i<iLen;i++)

{if (b[i]=='A')
c[j++]=b[i];
else if(b[i]=='T')
c[j++]=b[i];
else if(b[i]=='C')
c[j++]=b[i];
else if(b[i]=='G')
c[j++]=b[i];
}
c[j]='\0';
printf("%s\n",c);
free(a);
free(b);
free(c);

fclose(fp);

return 0;

}
请高手帮忙解释
展开
 我来答
xoaxa
推荐于2016-04-25 · TA获得超过8610个赞
知道大有可为答主
回答量:6415
采纳率:72%
帮助的人:3473万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

const unsigned MAXLEN = 0X0FFFFFFF;// 255MB
const int MAXROWSLEN = 80; // 每行可显示字符数

int main() {
int ch;
unsigned long i,n = 0;
FILE *fp;
char DNA[MAXLEN];
if((fp = fopen("D:\\360Downloads\\solexa_100_170_2 - 副本.fa","r")) == NULL) {
printf("不能打开文件!\n");
exit(0);
}
while((ch = fgetc(fp)) != EOF && n < MAXLEN) {
switch(ch) {
case 'A' :
case 'T' :
case 'C' :
case 'G' : DNA[n++] = ch; break;
}
}
fclose(fp);
for(i = 0;i < n;i++) {
if(i && i % MAXROWSLEN == 0) printf("\n");
printf("%c");
}
if(i % MAXROWSLEN) printf("\n");
return 0;
}
追问
如果我要处理的数据量是10000000个字符呢···刚刚试了一下,溢出,该怎么解决呢
追答
能处理的字符量与内存配置、代码生成的可执行程序的模式有关,这两个问题解决起来并不难,当然,完全没必要,你可以将源数据文件分成多个同类新文件,根据具体需要再做响应的处理。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式