Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

viciado

[Resolvido] Matriz

Recommended Posts

cara soh um teste, declara sua matriz assim:

int **m3;

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara soh um teste, declara sua matriz assim:

int **m3;

 

Agora funciona até a hora de mostrar o resultado da multiplicação.

 

Quanto vai mostrar o resultado da falha de segmentação (core dumped)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quit,ele vai precisar alocar espaco manualmente se declarar como ponteiro.

 

Dá falha de segmentacao porque você esta acessando endereco que nao pode. Olha a tua ultima linha:

 

printf("\nA multiplicação é:\n%d",m3[j]);

 

você está acessando posicao invalida de memoria....i e j saíram do for e não estao mais entre 0 e N-1...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom entaum declare sua matriz com um tamanho, pq você nem inicializa as variaveis q usa como linha e coluna qnd declara sua matriz! e para exibir a matriz use um for!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quit,ele vai precisar alocar espaco manualmente se declarar como ponteiro.

 

Dá falha de segmentacao porque você esta acessando endereco que nao pode. Olha a tua ultima linha:

 

printf("\nA multiplicação é:\n%d",m3[j]);

 

você está acessando posicao invalida de memoria....i e j saíram do for e não estao mais entre 0 e N-1...

 

Como eu devo fazer para imprimir o vetor da multiplicação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do mesmo jeito que você lê.

 

 

for(i=0; i<l1; i++)
		 {
		for(j=0; j<c2; j++)
		  {
		   m3[i][j]=0;
		for(k=0; k<c1; k++)
		 {
		   m3[i][j]+= m1[i][k]*m2[k][j];
		  }
		 }
		}
	   }
printf("\nA multiplicação é:\n%d",m3[i][j]);

Qual o erro que há? Como deve ser

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu ja falei o que é: você esta acessando posição ALEM do que você alocou p/ matriz porque I e J não estão entre 0 e N-1.

 

você tem que fazer outro for pra imprimir a matriz....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu ja falei o que é: você esta acessando posição ALEM do que você alocou p/ matriz porque I e J não estão entre 0 e N-1.

 

você tem que fazer outro for pra imprimir a matriz....

 

Ok. Mais como eu faço ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai galera vamos parar de rodeios hehehehe......

 

for (i=0;i<n;i++)
  for(j=0;j<n;j++)
	printf("%d",mat[i][j]);

 

/* so mais uma dica, aconselho sempre o uso de ponteiros quando tiver a usar estruturas de dados.....fui espero ter ajudado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai galera vamos parar de rodeios hehehehe......

 

for (i=0;i<n;i++)
  for(j=0;j<n;j++)
	printf("%d",mat[i][j]);

 

/* so mais uma dica, aconselho sempre o uso de ponteiros quando tiver a usar estruturas de dados.....fui espero ter ajudado

 

Ai vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq Giovanny? O que seria estrutura de dados?

Quando falo estrutura de dado me refiro aos vectores, matrizes, pilhas,filas,listas,arvores e por ai fora.... Aconselho o uso de ponteiros justamente porque com elas nós precisamos a principio determinar um determinado espaço na memoria, espaço esse que muitas vezes nao usamos.por exemplo se nós declarar um vetor como vet[100], muita das vezes só usamos 10 e os outros noventa fica no disperdicio, ja se fizermos *vet podemos usar funcoes de alocacao de modos a alocar na memoria apenas o espaço que vamos precisar usar. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

A pergunta foi meio besta mas não tenho noção de estruturas de dados, o que importa é que intendi o motivo de usar os ponteiros nesses casos :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.