Mi is pontosan a nullpointer vizsgálat és hogyan kell leírni a programban?
Sziasztok!
Adott egy programkód:
#include <stdio.h>
#include <stdlib.h>
int stringlen(char *string){
if(!string)
return 0;
int szamlalo;
for(szamlalo=0; *string; string++, szamlalo++)
;
return szamlalo;
}
int main(int argc, char *argv[]){
if(argc!=2)
return 0;
printf("A megadott string hossza:%d karakter", stringlen(argv[1]));
return 1;
Amire a tanár azt is mondja, hogy jó, azonban mindig belekérdez a nullpointer vizsgálatba és mindig azon hasalok el. Kérdés az, hogy miért így kell leírni a programban a nullpointer vizsgálatot ahogyan van. Esetleg az is megfelel, ha oldalakat küldtök, ahol jól le van írva a nullpointerről minden.
Előre is köszi!





Mert az adott fordítótól függ, hogy milyen értéket tekint nullpointernek.
if(!string) csak annyit vizsgál meg, hogy a string 0-ra mutató pointer-e
helyesen így lenne:
if(*string == '\0')
Ez pedig azt vizsgálja, hogy a string pointer által mutatott 0-ik elem 0 értékű-e, azaz C stílusú karaktertömb záró karakter értékű-e.
a '\0' és a 0 az esetek többségében azonos érték, de ez is fordító függő.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!