PDA

Visualizza la versione completa : [C] Warning: Condition is always false...


SDB
26-10-2005, 17:29
ciao a tutti...
ho una serie di warning dello stesso tipo ma non so a cosa sono dovuti:


if (sizeof(Points) == 1)

oppure:


if (!sizeof(Points))

dove Points :


struct DPoint *Points;
Points=(struct DPoint *) malloc(sizeof(struct DPoint)*10000);

Mi da sempre lo stesso warning:Condition is always false!
Qualcuno s aiutarmi?? :messner:
PS:preciso che sto cercando di convertire un codice da C++ a C e che originariamente il codice C++ era:


If (!Points.size()) .. ..
oppure :
If (Points.size() == 1) .. ..

con Points un vector<DPoint> Points;
e DPoints una struttura...
ciao a tutti...e grazie :stordita: :stordita:

Ikitt
26-10-2005, 17:40
Originariamente inviato da SDB
ho una serie di warning dello stesso tipo ma non so a cosa sono dovuti:


if (sizeof(Points) == 1)

oppure:


if (!sizeof(Points))

dove Points :


struct DPoint *Points;
Points=(struct DPoint *) malloc(sizeof(struct DPoint)*10000);
sizeof(Points) in questo caso e` equivalente a sizeof(struct DPoint *); ovvero alla dimensione di un puntatore.
E questa dimensione, sulla piattaforma in esame (windows?) e` diversa da 1 (quindi un puntatore occupa piu` di un byte in memoria), quasi sicuramente maggiore. Da qui la condizione succitata sempre falsa.


PS:preciso che sto cercando di convertire un codice da C++ a C e che originariamente il codice C++ era:


If (!Points.size()) .. ..
oppure :
If (Points.size() == 1) .. ..


Occhio: questo quotato restituisce la dimensione del contenitore, mentre prima si testava la dimensione del puntatore. Ovviamente non e` la stessa cosa.

Loading