Hirdetés

Új hozzászólás Aktív témák

  • Karma
    félisten

    Én sem értem. Ha valakit érdekel itt van a slide, ahol felhívják a figyelmet erre. Leginkább a gondom amúgy az volt, hogy egy beadandónál nem fogadta el az oldal a programomat, mert szerepelt benne a realloc szó. :)

    Még ezekkel kapcsolatban lenne olyan kérdésem, hogy ha meghívom realloc-ot, hogy kisebb memóriaterületet foglaljon, akkor levágja a lefoglalt területet? Ha igen, akkor mindig vagy ez függhet más dolgoktól?

    Gyanús hogy azért nem fogadta el, mert azt akarta, hogy kézzel implementáld le ugyanezt. A helyszínen kellett volna kifejtetni vele az ítéletét.

    Az oldalon lévő szöveg is csak annyit mond, hogy lassú lehet – de ez éppúgy igaz arra is, ha kézzel mallocolsz nagyobb területet, átmásolod memcpyval, és felszabadítod az előzőt.

    A kulcsmondat igazából ez: "Ne írjunk olyan programokat, amelyek gyakran méreteznek át tömböket!"

    A szabvány alapján nincs arra garancia, hogy ha kisebbre reallocolsz, akkor nem fogja mozgatni a memóriát. Mindenképpen le kell kezelned a visszatérési értéket helyesen, azaz nézni a NULL választ, és nemNULL esetben kicserélni az előzőt siker esetén; ha fel-, ha leméretezel.

Új hozzászólás Aktív témák