• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

par4n00b

[C] Ajuda: Nested structures (Resolvido)

8 mensagens neste tópico

Boas!

Após declarar as seguintes estruturas

struct d {
char nome[256];
int id;
char desc[1024];
char vars[10];

}; typedef struct d device;

struct m {
int flag;
device dev;

}; typedef struct m message;

struct b {
int readpos;
int writepos;
message array[10];

}; typedef struct b buffer;

quando faço

buffer *bufferIN;
bufferIN->writepos = 0;

Dá segmentation fault...Alguém me sabe dizer o que estou a fazer mal?

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Realmente não tinha feito isso..

É que eu quero partilhar o buffer em shared memory, fazendo

shmidIN = shmget (keyIN, sizeof(buffer),IPC_CREAT|0700);
bufferIN = (buffer *)shmat(shmidIN, NULL, 0);

e não se se depois disto, ao fazer

bufferIN = (buffer *)malloc(sizeof(buffer));

Vou perder o ponteiro para a shared memory...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nesse caso parece-me deixas de ter disponível o apontador para a shared memory... mas nunca usei esse tipo de funções por isso não te posso ajudar muito.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já experimentaste declarar os typedef antes de declarar as estruturas? Faz isso e vê se dá.

Eu também nunca usei essas funções por isso não posso dizer mais...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Afinal, declarando os typedef antes da struct funciona perfeitamente! Provavemente estava a fazer alguma coisa mal da primeira vez que experimentei.

Obrigado pela ajuda, problema resolvido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Afinal, declarando os typedef antes da struct funciona perfeitamente! Provavemente estava a fazer alguma coisa mal da primeira vez que experimentei.

não me parece que o problema estivesse aí... colocar o typedef antes é só uma forma de escrever menos...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora