Ponteiro para Struct em C [RESOLVIDO]

1. Ponteiro para Struct em C [RESOLVIDO]

Victor
victorthomaz

(usa Ubuntu)

Enviado em 23/10/2009 - 21:47h

Pessoal,

Alguém sabe me dizer o que há de errado com o código a seguir?
Qual é o erro na linha "mat2->matrix[2][2] = 8;" ?
Estou usando o gcc no Ubuntu e o erro "Falha de segmentação" é mostrado no console.

Se alguém puder me ajudar, desde já agradeço.

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

struct somestruct{
int matrix[10][10];
};


int main()
{
struct somestruct mat1;
struct somestruct *mat2;

mat1.matrix[1][1] = 7;
mat2->matrix[2][2] = 8;

printf("Sem ptr %d\n\n",mat1.matrix[1][1]);
printf("Com ptr %d\n\n",mat2->matrix[2][2]);

return 0;
}


  


2. Re: Ponteiro para Struct em C [RESOLVIDO]

Victor
victorthomaz

(usa Ubuntu)

Enviado em 23/10/2009 - 23:33h

Valew pela dica Sam L.

Fiz como abaixo e funcionou. Ficou estilo gambiarra, mas para o que estou fazendo é o suficiente. Atribuí o endereço de outra variável do tipo struct somestruct a minha variável ponteiro para struct somestruct.


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

struct somestruct{
int matrix[10][10];
};


int main()
{
struct somestruct matX;
struct somestruct mat1;
struct somestruct *mat2;
mat2 = &matX;

mat1.matrix[1][1] = 7;
mat2->matrix[2][2] = 8;

printf("Sem ptr %d\n\n",mat1.matrix[1][1]);
printf("Com ptr %d\n\n",mat2->matrix[2][2]);

return 0;
}







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts