Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti
Con 22 tasti, il pulsante 5D, lo Shift Mode e il sensore PixArt 3395 da 26.000 DPI, il nuovo mouse wireless di Mad Catz si rivolge in modo preciso ai giocatori di MMO e RPG. Ma chi conosce già il R.A.T. 8+ ADV si accorgerà subito di quanto i due prodotti condividano, e di dove invece divergono
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-05-2005, 14:51   #1
murnau
Junior Member
 
Iscritto dal: May 2005
Messaggi: 5
MASSIMA URGENZA (per programmatori in C)

Aiutatemi vi prego, stasera mi scade la consegna di un esercizio all' universita e se non lo consegno probabile che non passero l' esame.

Dunque il problema è un po particolare, il compilatore dice : "dereferencing pointer to incomplete type".
io sto usando una serie di strutture una dentro l' altra che vi mostro qui in seguito, la funzione riceve in input un puntatore alla strutturs piu esterna e io devo puntare quella piu interna, vi prego vedete voi se riuscite a scovare qualche errore:

typedef struct tabelem{ //elemento
char *key;
void *info;
}tabelem,*punta_elem;

typedef struct telist{ //listone di elementi aggiunti non ordinati
struct tabelem *el;
struct telist *next;
}telist,*listone;

typedef struct NODE{ //nodo della lista della tavola
struct tabelem *node_el;
struct NODE *next;
}NODE,*LISTA_NODE;

typedef struct HASHTABLE{ //tavola hash (vettore di puntatori a NODO)
struct NODE *vettore[MAX_LENGHT+1];
}HASHTABLE;

typedef struct table{
struct HASHTABLE htable;
struct telist *ls;
}table,*punta_table;

struct info_word {
char *parola;
int word_pos;
int title;
int italic;
int bold;
size word_size;
char *file_link;
int link_pos;
};

struct elem_hitlist {
struct info_word *info_occ_word;
struct elem_hitlist *next_elem;

};

struct elem_diz_loc {
char *parola;
struct elem_hitlist *hitlist;
int dim;
struct elem_diz_loc *next_word;
};

struct info_link {
struct tabelem *ptr_pagina;
int molteplicita;
struct info_link *next;
};

struct info_ipertesto {
struct info_link *lista_in;
struct info_link *lista_out;
struct elem_diz_loc *diz_loc;
int page_rank;
};

e la funzione è questa,

void crea_diz_ipertesti(struct table *t){

// dichiarazioni
FILE *pfile;
int i=0;
char *nfile;
struct elem_diz_loc *DIZ;

init_diz_iper(t); // inizializza le liste che conterranno
// tutti i dizionari locali presenti in un file

do{
strcpy(nfile,(t)->htable->vettore[i].elnodo->key);
pfile=fopen(nfile,"r");
((struct info_ipertesto *)t->htable->vettore[i].elnodo->info)->diz_loc=crea_diz_loc(DIZ,pfile);
rewind(pfile);
((struct info_ipertesto *)t->htable->vettore[i].elnodo->info)->lista_in=crea_lista_in(t,i,pfile);
rewind(pfile);
((struct info_ipertesto *)t->htable->vettore[i].elnodo->info)->lista_out=crea_lista_out(t,pfile);
i++;


fclose(pfile);
}while(t->htable->vettore[i]!=NULL);
murnau è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2005, 15:39   #2
murnau
Junior Member
 
Iscritto dal: May 2005
Messaggi: 5
qualche santo che mi aiuta?
murnau è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2005, 16:09   #3
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Non sono granche' capace, ma se dai qualche info + dettagliata magari si riesce a capire meglio... Ad esempio, su quale riga o struttura o variabile il compilatore ti da' l'errore? In che ambiente stai programmando? Windows, *nix, ecc...

Una cosa che personalmente non ho mai fatto e' quella di fare una typedef definendo un tipo con nome_tipo e poi dichiarare una variabile con lo stesso nome nome_tipo.... Non so se si e' capito, in pratica se faccio
Codice:
typedef unsigned short senza_segno;
poi non dichiaro una variabile
Codice:
senza_segno senza_segno;
cosa che mi sembra tu faccia con
Codice:
typedef struct tabelem {
...
} tabelem;
magari si puo' fare, ma mi sembra gia' una bella botta alla leggibilita' del programma...

Se qualcun altro da' il suo parere e mi corregge...

Gica
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2005, 16:53   #4
NiLUS
Senior Member
 
L'Avatar di NiLUS
 
Iscritto dal: Jun 2001
Città: Pordenone
Messaggi: 1216
Già, il modo in cui dichiari le variabili non è bellissimo per quanto concerne la leggibilità. Il programma poi, per l'amor di dio, potrebbe funzionare lo stesso. Difficilmente il problema sta li.

In ogni caso, buona cosa sarebbe che tu rispondessi alle domande che ti ha fatto Gica. Inoltre, che ci dicessi se ti da errore in una riga in particolare.
E' comunque un errore di puntatori, da quanto si può capire dal messaggio che ti da. Non so alla fine, ma i puntatori che usi poi li cancelli? Provare a eseguire passo-passo il programma per vedere in quale punto accade l'errore?
NiLUS è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2005, 17:17   #5
murnau
Junior Member
 
Iscritto dal: May 2005
Messaggi: 5
praticamente ogni volta che uso t mi da quell' errore di dereferenziamento.
lasciate perdere la logica del programma, se non sbaglio dovrebbe essere un errore di dichiarazione dei puntatori, credo.
comunque grazie, spero che sappiate aiutarmi
murnau è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2005, 17:25   #6
murnau
Junior Member
 
Iscritto dal: May 2005
Messaggi: 5
strano mi da lo stesso errore, scrivendo solamente :
t->htable->vettore[i];
murnau è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2005, 18:00   #7
murnau
Junior Member
 
Iscritto dal: May 2005
Messaggi: 5
tutto risolto grazie infinite lo stesso, fiuu che incubo è passato
murnau è offline   Rispondi citando il messaggio o parte di esso
Old 17-05-2005, 22:09   #8
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Quote:
Originariamente inviato da murnau
tutto risolto grazie infinite lo stesso, fiuu che incubo è passato
Meno male... Stavo quasi per mettermi a riguardare il tuo codice per capire dove stava il problema. Comunque dopo una giornata davanti al pc, sono contento di non doverlo fare , perche' mi scoppia la testa

Ad ogni modo, visto che non ho prestato moltissima attenzione ai dettagli, mi riveli (per pura curiosita') dove stava l'errore?


Gica

PS: in bocca al lupo per l'esame...
__________________
gica78r@ncc-1701:~$ tar -c
tar: Codardamente mi rifiuto di creare un archivio vuoto
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2005, 09:31   #9
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Alla fine ieri notte non ho resistito e mi sono messo a riguradare la faccenda... Sistemando un po' di cose e compilando il codice, ho ricevuto degli errori relativi alle righe
Codice:
 
((struct info_ipertesto *)t->htable->vettore[i].elnodo->info)->diz_loc=crea_diz_loc(DIZ,pfile);

((struct info_ipertesto *)t->htable->vettore[i].elnodo->info)->lista_in=crea_lista_in(t,i,pfile);

((struct info_ipertesto *)t->htable->vettore[i].elnodo->info)->lista_out=crea_lista_out(t,pfile);
della funzione init_diz_iper(t), ma erano errori che riguardavano semplicemente l'uso improprio degli operatori '.' e '->', nonche' la presenza di "elnodo", che non e' un campo di nessuna delle strutture dichiarate; credo che al suo posto andasse "node_el", elemento della struct NODE. Sistemate queste cose, la compilazione non dava errori; soprattutto, nessuna traccia dell'errore citato da murnau: "dereferencing pointer to incomplete type".

Ciao,
Gica
__________________
gica78r@ncc-1701:~$ tar -c
tar: Codardamente mi rifiuto di creare un archivio vuoto
Gica78R è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Reolink OMVI 3i WiFi: videosorveglianza più intelligente e facile da usare Reolink OMVI 3i WiFi: videosorveglianza pi&ugrav...
Axiom Space e Prada mostrano lo strato i...
Uno dei satelliti Rassvet-3 di Bureau 14...
Con il razzo spaziale Lunga Marcia 9, la...
Cavi sottomarini come sensori: la Finlan...
Exodus è il nuovo Mass Effect? Il...
Lockdown Mode cambia il volto di ChatGPT...
Guild Wars 3 è ufficiale: ArenaNe...
I giocatori voltano le spalle a Linux? L...
Instagram Plus arriva in Italia: cosa in...
XBOX: la nuova CEO non ha ancora le idee...
Intel non ha intenzione di abbandonare i...
La AI Mode sarà attiva di default...
Marvel's Wolverine non sarà un op...
Star Wars Zero Company esce ad agosto: n...
Bonus Decoder: fino al 70% di sconto con...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:07.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v