Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda na declaração de variaveis


Angelica N

Pergunta

Olá

Estou fazendo um programa e funciona quando a variavel tamanho_pop é pequena. Só que eu preciso que essa variavel seja igual a 200. Quando eu aumento o tamanho dela aparece a mensagem falha de segmentação. Como o meu programa é um pouco grande e para teste eu copiei a declaração de variavel para outro programa e nesse programa só tem comandos para escrever na tela.

Será que alguém pode me ajudar? Talvez haja uma forma mais inteligente de declarar essas variaveis. Mas como? Estou aprendendo C a alguns meses.

Ah, eu rodo o programa no Ubuntu e pelo gcc.

Obrigada desde já

Att

Angélica

/* Programa para ler os dados de um pdb e colocar em um struct */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>

main()
 {
//  -------------------------          Declaração das variáveis ----------------------------------

 FILE *entrada1, *saida;
 int i,j,l,n,m,a,b,c,p,posicao,numero_aa,w;
 char lixo[10];   //Variável para colocar todos os dados não-interessantes
 char string[10]; //Variável para colocar dados do tipo string que será transformado em int ou double
 char atomo[10],aminoacido[10],cadeia[5],concatena[5];
 double x, y, z;
 float xf, yf, zf;

//  ******** Struct Básico   **********
   struct PDB {         //Este é o meu struct ou estrutura
        int posicao;
        char atomo[10];
        char aminoacido[10];
        char cadeia[5];
        int numero_aa;
        double x, y, z;
       };

//  *******   Struct do Backbone e da Cadeia Lateral que não pertence ao sítio ativo **********
    struct PDB fixo[4000];   //10000

//  *******   Struct do Sítio Ativo **********
    struct PDB sitio_ativo[4000];  //10000

//  *******   Struct do Rotâmero **********
    struct PDB atomos[100]; //1000
    struct PDB1 {
        struct PDB atomos[100]; //1000
        char residuo_aa[10];
        char cadeia_aa[5];
        int posicao_aa;
        int rotamero_ativo;
        int n_atomos;
      };
    struct PDB1 cromossomo[30];  //100

int tamanho_pop;
tamanho_pop=40;

struct ind {struct PDB1 cromossomo[30]};
struct ind individuo[tamanho_pop];

char nome_arquivo[80],string1[5],string2[5],nome1[30],nome2[5];
FILE *funciona;

for (i=1;i<1000000;i++)
printf ("i = %i\n",i);
printf("\nteste\n");

// --------------------------   FIM Da Declaração de variáveis  ---------------------------------


}

Editado por Angelica N
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Eu olhei seu código e vi algumas linhas com erro, tente consertá-las:

/* Programa para ler os dados de um pdb e colocar em um struct */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>

main()
{
//  -------------------------          Declaração das variáveis ----------------------------------

FILE *entrada1, *saida;
int i,j,l,n,m,a,b,c,p,posicao,numero_aa,w;
char lixo[10];   //Variável para colocar todos os dados não-interessantes
char string[10]; //Variável para colocar dados do tipo string que será transformado em int ou double
char atomo[10],aminoacido[10],cadeia[5],concatena[5];
double x, y, z;
float xf, yf, zf;

//  ******** Struct Básico   **********
   struct PDB {         //Este é o meu struct ou estrutura
        int posicao;
        char atomo[10];
        char aminoacido[10];
        char cadeia[5];
        int numero_aa;
        double x, y, z;
       };

//  *******   Struct do Backbone e da Cadeia Lateral que não pertence ao sítio ativo **********
    struct PDB fixo[4000];   //10000

//  *******   Struct do Sítio Ativo **********
    struct PDB sitio_ativo[4000];  //10000

//  *******   Struct do Rotâmero **********
    struct PDB atomos[100]; //1000
    struct PDB1 {
        struct PDB atomos[100]; //1000
        char residuo_aa[10];
        char cadeia_aa[5];
        int posicao_aa;
        int rotamero_ativo;
        int n_atomos;
      };
    struct PDB1 cromossomo[30];  //100

int tamanho_pop;
tamanho_pop=40;

struct ind {struct PDB1 cromossomo[30]};
 /* tem um erro nessa linha, você deve colocar o ';' antes do '}' e o '}' eu recomendo pular uma linha, para ficar mais legivel o codigo */
struct ind individuo[tamanho_pop];
 //depois de consertar aquele erro ali em cima, aki vai ficar com um erro tambem, para consertá-lo, tire o ponto-e-virgua

char nome_arquivo[80],string1[5],string2[5],nome1[30],nome2[5];
// E depois aki vai ficar com um erro, tente consertá-lo, acho que já te ajudei um poukinho né? além do mais isso será um bom exercicio para você
FILE *funciona;

for (i=1;i<1000000;i++)
printf ("i = %i\n",i);
printf("\nteste\n");
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...