Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
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: 9485
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: 9485
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: 9485
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


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Missione Artemis II diretta verso la Lun...
Toy Story 5 arriva al cinema: è l...
Intel cambia rotta su Linux? Nuove assun...
Samsung aggiorna Bixby con One UI 8.5: p...
L'Etiopia vieta le auto a combustione: a...
Pirateria audiovisiva: la Guardia di Fin...
Ubisoft conferma due nuovi Far Cry in sv...
Chi vincerà il Festival di Sanrem...
G42 e Cerebras portano in India un super...
Offerte aggiornate del weekend Amazon: 7...
4 MacBook Air in offerta e scende a 939€...
Chrome cambia il tuo modo di lavorare: o...
Minimo storico iPhone 17 su Amazon: 909€...
USA, incriminati tre ingegneri della Sil...
Xbox: Phil Spencer lascia dopo 38 anni, ...
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: 05:41.


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