Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-04-2004, 09:58   #1
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
[C] spiegatemi questo WARNING

Codice:
...struct msgbuf1 {               /* struttura che contiene: */
	               long mtype;     /*  - tipo del messaggio; */
	               char mtext[100]; /*  - il messaggio; */
	} sndbuf, rcvbuf, *msgp;
char *piatto, *temp_pid;
...
piatto = malloc(strlen(msgp->mtext) - strlen(temp_pid )  );
Quote:
~/Marco/>gcc program.c -o accademia
program.c: In function `main':
program.c:131: warning: assignment makes pointer from integer without a cast
~/Marco/>
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 10:08   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
gcc ti avverte solo che quando fai quel assegnamento non hai fatto nessun cast quindi ce lo mette lui.
Se lo metti esplicito smette di dare il warning.
Codice:
piatto = (char*) malloc(strlen(msgp->mtext) - strlen(temp_pid )  );
ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 10:11   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Il codice è corretto, forse l'errore è da un'altra parte (ridefinizione di variabili, boh...)

Intanto cerca la variabile "sospetta", controlla ad es. se con uno di questi due cast il warning scompare:

strlen((char *) (msgp->mtext))
strlen((char *) temp_pid)

Tieni anche conto che in presenza di certe macro (non so se ne usi qualcuna) le righe riportate dal gcc possono essere scorrette. Ad esempio ti sei concentrato sulla malloc, e forse l'errore è sulla linea dopo...boh...

Sono solo indicazioni, la malloc come la hai scritta non dovrebbe produrre warning.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 10:12   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da VICIUS
gcc ti avverte solo che quando fai quel assegnamento non hai fatto nessun cast quindi ce lo mette lui.
Non è obbligatorio castare da void * a <qualsiasitipo> * (malloc ritorna void *, non un intero come suggerisce il warning). Almeno, non con tutte le verisoni di gcc che ho provato.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 10:28   #5
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Non è perchè il campo mtext della struttura è definito come char[100] e non come char * ?
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 10:30   #6
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
mmm...il warning sparisce solo se:

Codice:
piatto = (char *)malloc(strlen(msgp->mtext) - strlen(temp_pid )  );
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 10:31   #7
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
No. Un array di char è un puntatore costante.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 10:32   #8
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da cn73
mmm...il warning sparisce solo se:

Codice:
piatto = (char *)malloc(strlen(msgp->mtext) - strlen(temp_pid )  );
Puoi vedere se il warning ti compare anche con questo codice?
Codice:
void *v = NULL;
char *c;
c = v;
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 10:50   #9
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Col tuo codice non compare...
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 10:51   #10
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Allora la tua malloc è definita restiruire "unsigned long". Strano, che versione delle libc stai usando?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 12:57   #11
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Ho capito...

SCOMMETTO che se compili con
gcc program.c -o accademia -Wall
ovvero dicendogli di mostrare tutti i warning, ti compare anche questo:
Quote:
warning: implicit declaration of function `malloc'
...VERO?

Hai capito ora dove è il "problema"?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 13:13   #12
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
Esatto il messaggio è proprio quello...

mmm...non so, la malloc non è definita per restituire un tipo stabilito ma è una void?...perciò assegnando il suo valore a una variabile dovrei castizzarla?
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 13:17   #13
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Includi stdlib.h, animale!
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2004, 13:37   #14
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
cn73 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Serie A al via, le partite della tua squ...
La guida autonoma nasconde un rischio: i...
Ecco tutte le offerte Amazon di oggi, co...
WINDTRE rimodula ancora: fino a 3 euro i...
Birra e token: a Pechino un bar regala D...
Sconti Apple su Amazon: MacBook Pro M5, ...
MacOS Tahoe 26.7 svela numerosi prodotti...
CATL, 100% di elettricità a zero ...
YouTube: dal 24 agosto cambiano le regol...
Torna il coupon per le e-bike HillMiles ...
Epic Games Store arriva su Linux, ma la ...
Un AirTag in un libro raro porta al maga...
Torna il mini compressore portatile a pr...
Samsung punterà sempre più sui pieghevol...
Apple TV punta ai diritti USA dell'Open ...
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:34.


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