View Full Version : Strutture in C
Fabiomad^^'
20-10-2006, 13:11
ho una domanda....mA poxo inseririe una struttura in una struttura dopo aver dichiarato la prima???
Perchè il compilatore si incazza...
Cmq x capirci.. il codice è tipo...
struct Data1
{
int a, b, c;
int sp;
}
crea data1()
{
....
}
struct Data2
{
struct *Data1;
int sp2;
}
se non è chiaro ditelo che vi paxxo il codice...
eldiabloz
20-10-2006, 14:15
Si dovresti potere. Se lo ritrovo ti posto un esempio del mio profe dell'uni :sbav:
si dovresti.
ma il compilatore si incazza in che senso? da errore o warning?
non vorrei dire stronzate perche non mi ricordo molto pero non dovresti prima di dichiarare un puntatore ad una struc allocare spazio con la malloc ??
quello che vuoi fare si può definire una semilista :asd:
cmq ora non me ricordo più niente, se ho tempo in questi giorni ti ci guardo
Fabiomad^^'
21-10-2006, 09:20
#include <stdio.h>
#include <stdlib.h>
#define max 20
struct Scheda
{
char *nome;
char *cognome;
char *telefono;
int sp1;//indica il primo elemento vuoto
};
struct Scheda *creaScheda()//creo la prima struttura che contiene
{
struct Scheda *p;//creo puntatore a struttura
p=(struct Scheda *)malloc(sizeof(struct Scheda));// inizalizzo il puntatore alla struttura Stack
p->nome = (char *)malloc(30*sizeof(char));// inzializzo il puntatore che mi fa accedere ai dati ( a una dimensione di 100 interi in questo caso)
p->cognome = (char *)malloc(30*sizeof(char));
p->telefono = (char *)malloc(30*sizeof(char));
p->sp1 = 0;// inizalizzo a zero il puntatore che punta a Stack pointer(prima posizione libera dello stack)
return p;
}
struct Rubrica
{
struct Scheda *Amici;
int sp2;
};
struct Rubrica *creaRubrica()//creo la prima struttura che contiene
{
struct Rubrica *pr;//creo puntatore a struttura
pr = (struct Rubrica *)malloc(sizeof(struct Rubrica));// inizalizzo il puntatore alla struttura Stack
pr->Amici=(struct *)malloc(5*sizeof(struct));// inzializzo il puntatore che mi fa accedere ai dati ( a una dimensione di 100 interi in questo caso)
pr->sp2 = 0;// inizalizzo a zero il puntatore che punta a Stack pointer(prima posizione libero dello stack)
return pr;
};
void pushScheda(Scheda *p, char [], char [], char [])// passo alla funzione che riempie la struttura contenente i dati gli elmementi delle strighe che andrò ad inserire nella struttura
{
int i;
for(i=0; i<max;i++)
{
p->nome[p->sp1]=;//vettore di comodo che mettoin posizione [i]
p->cognome[p->sp1]=;
p->telefono[p->sp1]=;
p->sp1++;
}
};
void pushRubrica(Rubrica *pr)
{
pr->Scheda[pr->sp2]=
pr->sp2++;
};
Fabiomad^^'
21-10-2006, 09:21
questo è il codice..... dove ho sbagliato???
nn riesco a trovare l' errore. sembrerebbe tutto ok
Fabiomad^^'
24-10-2006, 08:20
invece c'è... ed è.... nella dichiarazione della struttura nella struttura.. qnd chiamo la malloc.... nella struttura rubrica....GRRRRR
Fabiomad^^'
25-10-2006, 13:17
ho risolto... era un problema di allocazione.... ora funge:rulez: :rulez: :rulez:
Powered by vBulletin™ Version 4.0.1 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.