Problema com array em C [Resolvido]

5 respostas
Sora

Esse código aloca dinamicamente um array, e depois adiciona valores a ele, só que eu não estou conseguindo, o programa não apresenta erro, roda normalmente, mas durante a execução, quando vai executar essa função, ele apresenta um erro bem na hora de atribuir os valores aos arrays. Não consigo encontrar o erro aqui, estou usando C. Help plz! :P

void Organize ( void )
{
	double ** m1;
	int lin=0, col=0, i, j;
       double p1x1 = 0, p1y1 = 0, p1x2 = 0, p1y2 = 0;

//...
//Definição de valores de lin e col
//...


	m1 = (double**)malloc(lin*sizeof(double));

	for(i=0;i<lin;i++){
		m1=(double**)malloc(col*sizeof(double));
	}

	i=0;	

ForEachLine(line){
   line->GetCoordPts(&p1x1,&p1y1,&p1x2,&p1y2);
   m1[i+1][i+1] = p1x1;
   m1[i+1][i+2] = p1y1;
   m1[i+1][i+3] = p1x2;
   m1[i+1][i+4] = p1y2;
}

}

5 Respostas

maquiavelbona

Olha, isso é falta de atenção. Você aloca lin espaços de ponteiro em m1 e depois você aloca col espaço de ponteiro em m1. Tem 2 erros que são falta de atenção.

  1. Olhe o tamanho do que você está alocando.
  2. Olhe onde alocas.

Até!

Sora

Realmente foi falta de atenção minha, mas agora fiz um array aqui que deu certo e ficou bem mais simples.
Obrigada pela ajuda! :slight_smile:

Sora

Realmente foi falta de atenção minha, mas agora fiz um array aqui que deu certo e ficou bem mais simples.
Obrigada pela ajuda! :slight_smile:

maquiavelbona

Pois então coloque aqui como fizeste para referências futuras ( ou conselhos para melhorias).

Até!

Sora

Olá! Me desculpe a demora pra postar, mas é que essa semana foi meio enrolada por aqui.

Eu fiz da seguinte forma:

double * m1;

 //...  
 //Definição de valores de lin e col  
 //...  

m1 = (double*) malloc(lin*col*sizeof(double));

Depois fui trabalhando no array mesmo, mas como se fosse uma matriz.

Abs.

Sora

Criado 23 de julho de 2009
Ultima resposta 30 de jul. de 2009
Respostas 5
Participantes 2