Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
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


Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Super sconti su 3 mini PC: quello da 143...
Polestar 5 non ha più segreti: fi...
Windows 11 25H2: le prestazioni non camb...
5 soluzioni vincenti per aspirare e lava...
SiFive lancia la seconda generazione di ...
Come e dove vedere l'evento Awe Dropping...
Mancava da 2 mesi: torna il super notebo...
Ottica quantistica: l'Università ...
TCL 55'' Smart TV con Fire TV a soli 279...
Eureka J15 Ultra, robot super potente da...
DJI Mini 4 Pro Fly More Combo: niente pa...
Google contraddice se stessa: 'Il web ap...
La nuova PlayStation 6 seguirà il...
Aspirapolvere 21000Pa per auto a 24,99€,...
Scopri i limiti nascosti di Gemini: Goog...
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:14.


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