Hirdetés

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

  • Ez ebben a formában még magas nekem, de azért köszi a szándékot.
    A mutatókat már ismerem, de csak felületesen.
    Átvariáltam a dolgot mivel a fentebbi kódomnál csak a char típus jöhetett szóba és így pazaroltam a bájtokat illetve a megfelelő típusmódosítások is igényeltek további sorokat.
    Az új verzában már külön szedtem a char és int típusokat és így már szebben lehet e memóriába beírni és kiolvasni.
    Nem kellenek az elválasztó karakterek sem.
    Ahogy tanulom és gyakorlom a dolgot úgy értem meg egyre jobban a működéseket. :R

    A "Valaminev#60#120#185#225#240#260" -ből egy ciklussal a kettőskereszteket nullára cseréled:

    Valaminev\060\0120\0185\0225\0240\0260

    így létrejön 7 stringed. A char memtomb[7][46] helyett egy pointer tömböt csinálsz (char *memtomb[7]) és menet közben mindig feljegyzed az aktuális stringedre mutató pointert:

    unsigned char meminput[] = "Valaminev#60#120#185#225#240#260";
    unsigned char *memtomb[7];
    memtomb[0] = meminput;
    size_t len = strlen(meminput);
    int memptr = 1;
    for (int i = 0; i < len; ++i) {
    if (meminput[i] == '#') {
    meminput[i] = 0;
    memtomb[memptr++] = meminput + i + 1;
    }
    }
    for (int i = 0; i < 7; ++i)
    printf("%s\n", memtomb[i]);

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