| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 408 人关注过本帖
标题:如何定义大的数组
取消只看楼主 加入收藏
a13780393
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2012-10-6
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:0 
如何定义大的数组
sequence.zip (11.65 KB)
static char s[3455641349];我的文件包含30亿个字符,系统显示数过大,超出内存,怎么定义啊?这是原代码,#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>

#define N 256

struct motif
{
  char name[20];
  float  number;
} lead[N];

void main()
{

/////计算TATA 保守性
   
    FILE *in,*out;
    in=fopen("sequence.txt","r");
    out=fopen("结果.txt","w");
    static char s[3455641349];
    char c[4]={'a','g','c','t'};
    int i=0,j=0,k=0,l=0,m=0,number=0;
    int person=0;
    float words=0;
    float expect=0;
   
    for(i=0;i<4;i++)
     for(j=0;j<4;j++)
      for(l=0;l<4;l++)
       for(m=0;m<4;m++)
           {
            lead[number].name[0]=c[i];
            lead[number].name[1]=c[j];
            lead[number].name[2]=c[l];
            lead[number].name[3]=c[m];
            number++;
           }

    while(!feof(in))
    {
      fgets(s,3455641349,in);
      if(s[0]=='@') break;
      for(i=0;i<3455641348;i++)
      {
       for(j=0;j<4;j++)
        for(k=0;k<4;k++)
         for(l=0;l<4;l++)
          for(m=0;m<4;m++)
              {
               if(s[i]==c[j]&&s[i+1]==c[k]&&s[i+2]==c[l]&&s[i+3]==c[m]&&s[i+4])
                  lead[person].number++;
               person++;
              }  
       person=0;
       words++;
      }
           
      for(i=0;i<3455641348;i++)
        s[i]=' ';
       }

    for(k=0;k<N;k++)        
        fprintf(out,"%s\t%f\t\n",lead[k].name,lead[k].number);
   
    fclose(out);
}



[ 本帖最后由 a13780393 于 2013-1-14 19:54 编辑 ]
搜索更多相关主题的帖子: include number 如何 
2013-01-14 16:17
快速回复:如何定义大的数组
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017229 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved