Ile zwróci sizeof?
KillerBee 21.01.2014
Witam jesli zmienna mam np.
new static nowa_zmienna[][] = {
"cos1",
"cos2",
"cod3",
"cod4"
}
i i chce pozniej uzyc np.
new ile
ile++
if(ile >= sizeof(nowa_zmienna) - 1) { // kod }
to zwroci mi 3 czy 2?
Użytkownik KillerBee edytował ten post 21.01.2014 22:29
KillerBee 21.01.2014
czemu 4? dodalem - 1 wiec powinno odjac
a jak dam charsmax(nowa_zmienna) to bedzie 3?
Użytkownik KillerBee edytował ten post 21.01.2014 22:44
KillerBee 22.01.2014
czyli jak uzyje
new ile
ile++
for(new i = 0; i < charsmax(nowa_zmienna); i++)
if(ile >= i) ile = 0;
to zmienna i zwroci mi 0, 1, 2, 3 (rozmiar tablicy - 1)?
sebul
22.01.2014
Nie, sizeof zwraca rozmiar tablicy, więc nie, a charsmax rozmiar tablicy - 1, ale charsmax raczej wypadało by używać tylko do jednowymiarowej tablicy znaków, ale nie jest to jakaś reguła.czyli jak uzyje
new ile
ile++
for(new i = 0; i < charsmax(nowa_zmienna); i++)
if(ile >= i) ile = 0;
to zmienna i zwroci mi 0, 1, 2, 3 (rozmiar tablicy - 1)?
DarkGL
22.01.2014
Spytałeś o to ile zwróci sizeof , siezof zwróci 4 co robisz potem z tym ( odejmujesz , dodajesz , i inne cuda ) to już inna sprawa
PS. 4 - 1 = 3
Charsmax to tak naprawdę prosta makrodefinicja
PS. 4 - 1 = 3
Charsmax to tak naprawdę prosta makrodefinicja
#define charsmax(%1) sizeof( %1 ) - 1