Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-06-2004, 12:02   #1
h1jack3r
Senior Member
 
L'Avatar di h1jack3r
 
Iscritto dal: May 2002
Città: somewhere in Europe
Messaggi: 2554
[c] Problema con Mallc

cosa c'è di sbagliato in questa funzione che il compilatore mi da un errore
"Cannot convert bool to vetture*"
mi sapreste aiutare?


struct vetture *caricavettura(struct vetture *puntavettura,FILE *fp1){
int n,i,dispon;
char stringa[80];


fscanf(fp1,"%d",&n);
if(puntavettura=(struct vetture*)malloc((sizeof(struct vetture)*n)==NULL)
printf("Memoria esaurita");

for(i=0,i<n,i++){
fscanf(fp1,"%d",&dispon);
puntavettura[i]->disponibili=dispon;
fscanf(fp1,"%s",stringa);
strcpy(puntavettura[i]->modello,stringa);}
}
h1jack3r è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2004, 12:08   #2
Ed_Bunker
Senior Member
 
L'Avatar di Ed_Bunker
 
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9556
Re: [c] Problema con Mallc

Quote:
Originariamente inviato da h1jack3r
cosa c'è di sbagliato in questa funzione che il compilatore mi da un errore
"Cannot convert bool to vetture*"
mi sapreste aiutare?


struct vetture *caricavettura(struct vetture *puntavettura,FILE *fp1){
int n,i,dispon;
char stringa[80];


fscanf(fp1,"%d",&n);
if(puntavettura=(struct vetture*)malloc((sizeof(struct vetture)*n)==NULL)
printf("Memoria esaurita");

for(i=0,i<n,i++){
fscanf(fp1,"%d",&dispon);
puntavettura[i]->disponibili=dispon;
fscanf(fp1,"%s",stringa);
strcpy(puntavettura[i]->modello,stringa);}
}
Magari non sara' ma prova:
if ( (puntavettura = (struct vetture*)malloc(sizeof(struct vetture) * n)) == NULL)
...
...

(Mi sa che hai messo male le parentesi e sia la precedenza degli operatori a crearti problemi...)
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C.
Ed_Bunker è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2004, 12:16   #3
h1jack3r
Senior Member
 
L'Avatar di h1jack3r
 
Iscritto dal: May 2002
Città: somewhere in Europe
Messaggi: 2554
Re: Re: [c] Problema con Mallc

Quote:
Originariamente inviato da Ed_Bunker
Magari non sara' ma prova:
if ( (puntavettura = (struct vetture*)malloc(sizeof(struct vetture) * n)) == NULL)
...
...

(Mi sa che hai messo male le parentesi e sia la precedenza degli operatori a crearti problemi...)

forse è andata....ti spiego quello che voglio fare, praticamente ho allocato memoria per quel tipo di struttura, in questo modo ho creato un vettore di strutture vero? Al quale posso accedere con
puntavettura[0]->qualcosa
puntavettura[1]->qualcosa
eccetera giusto?
h1jack3r è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2004, 13:37   #4
Ed_Bunker
Senior Member
 
L'Avatar di Ed_Bunker
 
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9556
Re: Re: Re: [c] Problema con Mallc

Quote:
Originariamente inviato da h1jack3r
forse è andata....ti spiego quello che voglio fare, praticamente ho allocato memoria per quel tipo di struttura, in questo modo ho creato un vettore di strutture vero? Al quale posso accedere con
puntavettura[0]->qualcosa
puntavettura[1]->qualcosa
eccetera giusto?
Cosi' facendo hai ottenuto un puntatore ( puntavettura ) che punta ad una area di memoria abbastanza grande da contenere n elementi di tipo struct vetture. Tali elementi saranno accessibili deferenziando (Con l'operatore *) il puntatore puntavettura.
Ovvero:

puntavettura inizialmente punta al primo elemento dell'area di mem allocata; facendo p = p+1 puntera' al secondo elemento e cosi' via. Facendo (*p).nomeCampo (oppure p->nomeCampo) accederai al nomeCampo del singolo elemento (struct vetture)puntato (In quel momento) da punta vettura.

Penso sia cosi.

Ciao.
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C.
Ed_Bunker è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2004, 22:59   #5
Diabolik.cub
Senior Member
 
L'Avatar di Diabolik.cub
 
Iscritto dal: Apr 2001
Città: Torino (provincia)
Messaggi: 960
Re: Re: [c] Problema con Mallc

Quote:
Originariamente inviato da Ed_Bunker
Magari non sara' ma prova:
if ( (puntavettura = (struct vetture*)malloc(sizeof(struct vetture) * n)) == NULL)
forse sbaglierò io.. ma non è che volevi crearti un vettore di puntatori a struttura? Nel caso dovresti aggiungere un asterisco sia nel cast che nel sizeof.. Inoltre in caso di vettori è più indicata la malloc che ti permette di indicare il numero di celle e le inizializza a NULL automaticamente.

if ( (puntavettura = (struct vetture **)calloc(n, sizeof(struct vetture *))) == NULL)

in questo modo ha un senso

puntavettura[0]->qualcosa
__________________
Nel mercatino ho concluso con: eleoluca, huangwei, jai, ^v3rsus, Rinos, arvey, kinderboy.
Diabolik.cub è offline   Rispondi citando il messaggio o parte di esso
Old 20-06-2004, 23:51   #6
Ed_Bunker
Senior Member
 
L'Avatar di Ed_Bunker
 
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9556
Re: Re: Re: [c] Problema con Mallc

Quote:
Originariamente inviato da Diabolik.cub
forse sbaglierò io.. ma non è che volevi crearti un vettore di puntatori a struttura? Nel caso dovresti aggiungere un asterisco sia nel cast che nel sizeof.. Inoltre in caso di vettori è più indicata la malloc che ti permette di indicare il numero di celle e le inizializza a NULL automaticamente.

if ( (puntavettura = (struct vetture **)calloc(n, sizeof(struct vetture *))) == NULL)

in questo modo ha un senso

puntavettura[0]->qualcosa
Non so cosa volesse fare... Pero' il parametro passato alla funzione "caricavettura" (puntavettura) e' un puntatore ad una variabile di tipo 'struct vetture'. Per questo credevo che l'allocazione andasse bene cosi' come l'ho scritta sopra...
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C.
Ed_Bunker è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
OpenAI ritira il taglio al Pro 200, Anth...
Polymarket, script esterno compromesso: ...
I MacBook Pro con display OLED avranno u...
DeepSeek rilascia Superagent: arriva l'a...
Meta ha costruito in Cina il robot umano...
App non ottimizzate sui pieghevoli? Goog...
Dyson Supersonic super scontato su Amazo...
Proscenic punta al massimo con le scope ...
Altri pieghevoli per Samsung: l'azienda ...
Musk non riesce a fermare la causa: le t...
Grafene al posto del silicio per le cell...
F-Stop, il prequel cancellato di Portal ...
Il razzo spaziale New Glenn di Blue Orig...
La Cina si prepara al primo lancio orbit...
Sale LAN, la Manovra 2027 introduce una ...
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: 09:09.


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