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

  • CPT.Pirk
    Jómunkásember

    Ez megint nem jó, mert a ++ az ugyebár megnöveli a változót. Tehát ha megtalálta a \n-t és a rákövetkező byte a lezáró nulla, akkor azt önmagával akarja felülírni. Ha viszont nem nulla, akkor abban a lépésben a buffer kétszer lesz növelve. A visszatérési érték pedig továbbra is rossz, mivel akkor a buffer már a string végére fog mutatni.

    Embertelenül túlbonyolítod a kérdést. Összesen annyit kell csinálni, hogy megkeresed a végjelet és megnézed, hogy az előtte lévő karakter \n-e és ha igen, akkor azt felülírod.

    Kezdem felfogni. ;]

    if (buffer && *buffer) {
    while (*buffer != '\0') {
    if (*buffer-- == '\n') {
    *buffer = '\0';
    }
    buffer++;
    }
    return buffer;
    }
    return NULL;

    Viszont azt nem tudom, hogy ez a felülírás amit mondtál, ez mit csinál. Mivel ha felülírjuk, akkor mindenképpen 2 darab \0 lesz a stringben. Ilyenkor magától levágódik a második \0?

    Valamint hogy van ez a visszatérési érték helyreállítása?

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