gcc - vyhodnoceni podminek

Marian Schubert awx na golem.gymzv.sk
Pátek Říjen 30 11:54:01 CET 1998


Robert Heryan wrote:

> main(int count, char *param[]){
>   if(count > 1 && *param[1] == 'a'){

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.
Prog. by mal vyzerat asi takto :

#include <stdio.h>

main (int count, char *param[]) {
  if (count > 1)  {
    if (*param[1] == 'a') {
      printf("OK\n");
    } else {
      printf("Err (param[1] != 'a') \n")
    }
  } else {
    printf("Err (count <= 1) \n");
  }
}



maio. (awx na golem.gymzv.sk)



Další informace o konferenci Linux