gcc - vyhodnoceni podminek

Jacek Kopecky kopeckyj na inf.upol.cz
Pátek Říjen 30 12:30:15 CET 1998


 > V podmienke if(count > 1 && *param[1]=='a') sa najprv vyhodnoti count>1
 > a potom *param[1]=='a' a az nakoniec sa urobi &&. No a ak nezadate
 > ziaden parameter tak *param[1] pristupi k cudzej pamati a program spadne
 > a vytvori sa core dump.

 Dobry den.
 Toto je spatne. Podle standardu (ansi) cecka, pokud se u operatoru && a ||
da rozhodnout uz podle leve strany, pak se prava nevyhodnocuje. Takze program
je spravne, chyba je v tom printf ("Err\n", *param[1]), protoze cecko se
snazi predat fci printf bajt, ktery je na adrese param[1], a k tomu nemuze.
 Zdravi
                                       Jacek Kopecky

E-mail: jacek.kopecky na upol.cz (ISO Latin 2 compatible)
WWW:    http://www.upol.cz/~kopeckyj



Další informace o konferenci Linux