Aumentar a memoria no devc++

13 respostas
D

Fala galera blz,

estou com um problema , quero aumentar o memoria no devc++ , mas nao acho a linha de comando que coloco na opçoes do compilador…
alguem sabe???

13 Respostas

ViniGodoy
Uma dica. Não use o devcpp. Por vários motivos:

a) A IDE é muito antiga, cheia de bugs e completamente sem suporte;

b) Usa uma versão velhíssima do MinGW;

c) Corta algumas mensagens de erro, o que impede você de resolver certos problemas;

No lugar, use o Code::Blocks. Também é gratuito, e muito mais atualizado:
http://www.codeblocks.org

Agora, o que você quer dizer com “aumentar a memória”?

Como o devcpp trata do assunto “cpp” e não java, vou mover o tópico para a sessão de outras linguagens.

D

Tenho um programa que multiplica uma matrizes de tamanho variado até 1024…
A multiplicaçao acontece normal até uma matriz A 500 (linhas)por 20(colunas) com outra matriz B 20(linhas) por 500(colunas)…
Quando digito uma matriz de tamanho maior que 500 , aparece aquela janela do windons (nao enviar relatorios de erro)…
Vou mudar do devc++ para code blocks …

E

Isso não é coisa do DevC++, mas provavelmente um erro de programação.

Como o tamanho do array é relativamente pequeno (50 X 200 X 8 bytes = 80Kbytes, menor que qualquer arquivinho de MP3 por aí), se você foi suficientemente esperto para usar double em vez de float) então é a forma de você declarar o array. Como é que você aloca o array?

D

Desculpa , achei q ia demorar a responder…
declarei o array assim int matrizA[l][c] . tentei com long float , int com byte est dando um erro

E

Hum… você declarou essa variável como uma variável local ou alocou dinamicamente essa variável? (esqueci de ver se você criou o programa em C ou C++)?

O total de memória para variáveis locais, no Windows, é por volta de 128K a 1MB (não sei como é que o Dev-C++ configura o tamanho do stack por thread).
Se você alocar essa variável com “new” ou “malloc” o tamanho não é problema; você pode alcançar até cerca de 1GB em Windows 32 bits, e bem mais em Windows 64 bits.

E

Além disso, fazer multiplicação de matrizes com “int” é loucura, a menos que você saiba o que está fazendo.

Use “double”.

D

kkkkkkkkkkkkkkkkkk…
Mudei já do devc++ para codeblocks …estou fazendo em c … e aloco com new e esta dinamico.

D

Estou rodando no code blocks o codigo.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{

//Definição de variaveis
int i,l,c,c1,l1, j, X;

//Entrada de dados

printf("\n Informe a quntidade de linhas da matriz A : “);

scanf(”%d",&l);

printf("\n Informe a quantidade de colunas da matriz A : “);

scanf(”%d",&c);

printf("\n Informe a quntidade de linhas da matriz B : “);

scanf(”%d",&l1);

printf("\n Informe a quantidade de colunas da matriz B : “);

scanf(”%d",&c1);

double matrizA[l][c],matrizB[l1][c1],matrizC[l][c1],Aux=0;

if(l < 1024 && c < 1024 && l1 < 1024 && c1 < 1024){

if(l==c1)

{

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

{

for(j=0; j<c; j++)

{

//intf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz A: “, i+1, 167, j+1, 167);

//canf(”%f", &matrizA[i][j]);

matrizA[i][j]= 10;

}

printf("\n");

}

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

{

for(j=0; j<c1; j++)

{

//intf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: “, i+1, 167, j+1, 167, 167);

//anf(”%f", &matrizB[i][j]);

matrizB[i][j]=10;

}

printf("\n");

}

printf("---------------------------- 1 - Matriz Gerada ---------------------------------\n\n");

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

{

for(j=0; j<c; j++)

{

printf("%6.f", matrizA[i][j]);

}

printf("\n\n");

}

printf("---------------------------- 2 - Matriz Gerada ---------------------------------\n\n");

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

{

for(j=0; j<c1; j++)

{

printf("%6.f", matrizB[i][j]);

}

printf("\n\n");

}

//Processamento e saida em tela

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

{

for(j=0; j<c1; j++)

{

matrizC[i][j]=0;

for(X=0; X<l1; X++)

{

Aux += matrizA[i][X] * matrizB[X][j];

}

matrizC[i][j]=Aux;

Aux=0;

}

}

printf("\n\n");

printf("---------------------------- 3 - Matriz Gerada ---------------------------------\n\n");

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

{

for(j=0; j<c1; j++)

{

printf("%6.f", matrizC[i][j]);

}

printf("\n\n");

}

printf("\n\n");

}

else

{

printf("\n\n Nao ha com multiplicar as matrizes dadas “);

}

system(“pause”);

}

else

printf(”\n\n MATRIZ MAIOR QUE 1024");

return 0;

}
D
Vou testando matrixA = 600 por100 e matrizB = 100 por 600 de boa quando testo de matrizA 600 por 150 por matrizB 150 por 600 trava.aparece a mesma janela do windons(nao enviar relatorios de erro)no final do codigo tinha  esse erro mas ja consertei , so colocar em cima do System(pause)…

}

else

printf("\n\n MATRIZ MAIOR QUE 1024");
D
Tipo q em java deixo o vetor assim ;

int vetor = new int[x];

em c seria assim

int vetor = [x] ;

e ae ja posso guardar valor ja ???
ViniGodoy

Olá, ao postar códigos, por favor use a tag code. Isso deixa o código colorido e fácil de ler, além de manter a formatação.
Se não conhece esse recurso, leia:
http://www.guj.com.br/posts/list/50115.java

D
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


int main()
{



//Definição de variaveis
int i,l,c,c1,l1, j, X;

//Entrada de dados
printf("\n Informe a quntidade de linhas da matriz A : ");
scanf("%d",&l);
printf("\n Informe a quantidade de colunas da matriz A : ");
scanf("%d",&c);
printf("\n Informe a quntidade de linhas da matriz B : ");
scanf("%d",&l1);
printf("\n Informe a quantidade de colunas da matriz B : ");
scanf("%d",&c1);


int matrizA[l][c],matrizB[l1][c1],matrizC[l][c1],Aux=0;



if(l <= 1024 && c <= 1024 && l1 <= 1024 && c1 <= 1024){
if(l==c1)
{
for(i=0; i<l; i++)
{
         for(j=0; j<c; j++)
         {
         //intf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz A: ", i+1, 167, j+1, 167);
        //canf("%f", &matrizA[i][j]);

        matrizA[i][j]= 1;
         }
         printf("\n");
         }
for(i=0; i<l1; i++)
{
         for(j=0; j<c1; j++)
         {
         //intf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167);
         //anf("%f", &matrizB[i][j]);
         matrizB[i][j]=1;
         }
         printf("\n");
         }
printf("---------------------------- 1 - Matriz Gerada ---------------------------------\n\n");
for(i=0; i<l; i++)
{
         for(j=0; j<c; j++)
         {
         printf("%6.f", matrizA[i][j]);
         }
         printf("\n\n");
         }
printf("---------------------------- 2 - Matriz Gerada ---------------------------------\n\n");
for(i=0; i<l1; i++)
{
         for(j=0; j<c1; j++)
         {
         printf("%6.f", matrizB[i][j]);
         }
         printf("\n\n");
         }
//Processamento e saida em tela
for(i=0; i<l; i++)
{
         for(j=0; j<c1; j++)
         {
                  matrizC[i][j]=0;
                  for(X=0; X<l1; X++)
                  {
                  Aux += matrizA[i][X] * matrizB[X][j];
                  }
                  matrizC[i][j]=Aux;
                  Aux=0;
                  }
                  }
                  printf("\n\n");
printf("---------------------------- 3 - Matriz Gerada ---------------------------------\n\n");
for(i=0; i<l; i++)
{
         for(j=0; j<c1; j++)
         {
         printf("%6.f", matrizC[i][j]);
         }
         printf("\n\n");
         }
         printf("\n\n");
         }
else
{
printf("\n\n Nao ha com multiplicar as matrizes dadas ");
}
}
else
printf("\n\n MATRIZ MAIOR QUE 1024");
system("pause");

return 0;
}
D

valeu pela dica…

Criado 3 de setembro de 2009
Ultima resposta 3 de set. de 2009
Respostas 13
Participantes 3