2521
Vývoj / Re:Předávání dat do funkce v C a jiná velikost
« kdy: 26. 11. 2012, 17:05:31 »
Pokud se nepletu, tak sizeof je operátor (je to jedno z klíčových slov jazyka C), není to funkce.
Aplikován na pointer (deklarovaný jako parametr funkce) vrátí velikost toho pointru v bajtech.
(==> proto bacha na toto: str[sizeof (str)] = '\0';, memcpy(str, ptr, sizeof(ptr)); )
Pokud je velikost těch řetězců známá v okolí té volané funkce, určitě bude efektivnější do ní předávat i velikosti jednotlivých řetězců.
Pokud ne a jde o normální (= řetzce ukončené znakem '\0' ) řetězce, asi nemá smysl nejdříve počítat velikost pomocí strlen() a pak tu velikost použít v dalším cyklu ...
Aplikován na pointer (deklarovaný jako parametr funkce) vrátí velikost toho pointru v bajtech.
(==> proto bacha na toto: str[sizeof (str)] = '\0';, memcpy(str, ptr, sizeof(ptr)); )
Pokud je velikost těch řetězců známá v okolí té volané funkce, určitě bude efektivnější do ní předávat i velikosti jednotlivých řetězců.
Pokud ne a jde o normální (= řetzce ukončené znakem '\0' ) řetězce, asi nemá smysl nejdříve počítat velikost pomocí strlen() a pak tu velikost použít v dalším cyklu ...



), ale zapomene na ten parametr u překladače. Viděl jsem i to, že někdo ten include nenapsal na začátek souboru, ale doprostřed funkce main atd.