Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-04-2004, 10: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, 11: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, 11: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, 11: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, 11: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, 11: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, 11: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, 11: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, 11: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, 11: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, 13: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, 14: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, 14: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, 14: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


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Il produttore tedesco di videocamere per...
La missione Transporter-15 di SpaceX ha ...
Il lancio del razzo spaziale riutilizzab...
Google integra la AI Mode anche in Cerch...
Apple Maps e Ads sono Gatekeeper? L'Euro...
Il nuovo pieghevole Huawei Mate X7 &egr...
L'app Apple Podcasts si comporta in modo...
Una copia fisica di Fortnite è st...
Motorola prepara il suo primo smartphone...
Hisense in forte ribasso: il 75 pollici ...
Galaxy S27 Ultra potrebbe utilizzare la ...
Ultimi 2 giorni: ecco le offerte Amazon ...
Maxi sconti su wallbox e cavi per la ric...
Tutti gli sconti più forti sugli ...
Il prossimo smartphone di OnePlus avr&ag...
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: 18:48.


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