Porovnávanie dvoch blokov pamätí

Programovacie jazyky, rady, poradňa...
I am kiko
Amateur
Amateur
Príspevky: 17
Registrovaný: 03 apr 2020, 13:41

Porovnávanie dvoch blokov pamätí

Príspevok od používateľa I am kiko »

Zdravím, chcem sa opýtať na porovnávanie dvoch blokov pamätí v jednom Stringu, resp. či je riešenie danej problematiky naozaj efektívne pre daný algoritmus : účel : Chcem načítať zo vstupu stringové formáty, potom ich prehľadať a ak sa niečo vyskytuje viackrát, tak si to zapamätať, v opačnom prípade len všetko prepísať do pomocného poľa alebo bloku pamäte.

Napríklad : Na vstupe mám 4 mená, z toho 2 sú rovnaké (Marek , Adam, Marcel , Adam)
To by som chcel prekopírovať do nového poľa (resp. bloku pamäte) následovne (Marek, Adam, Marcel)

Tento algoritmus som riešil nasledovným spôsobom

Kód: Vybrať všetko

char* r;
int number_of_people=0;
while((r=fgets(line,SIZE,stdin))!=NULL)
{
int i;
int len=strlen(line);
        for ( i = 0; i < number_of_people; i++)
        {
                   if (memcmp(input_list[i],line,len))
                        {
                        printf("There is a match");
                        }
        }
        input_list[number_of_people] = malloc(len + 1);
        memcpy(input_list[number_of_people],line,len + 1);
        number_of_people += 1;
}

return 0;
No trošku mi blbne pamäť , zrejme siaham tam , kde nemám prístup. (Segmentation Fault)
Viete mi niekto s týmto pomôcť ? Myslíte si že problém nebude vo funkccii memcp?
Kód aj problém vyššie je len čiastkový, nieje to cleý kód.
Spixy
Professional
Professional
Používateľov profilový obrázok
Príspevky: 1334
Registrovaný: 24 okt 2010, 12:52

Re: Porovnávanie dvoch blokov pamätí

Príspevok od používateľa Spixy »

skúšal si pozrieť cez debugger?
I am kiko
Amateur
Amateur
Príspevky: 17
Registrovaný: 03 apr 2020, 13:41

Re: Porovnávanie dvoch blokov pamätí

Príspevok od používateľa I am kiko »

Nakoniec som to spravil cez strcpy a sctrcmp.
Toto bolo na prácu s stringami jednoduchšie.
Napísať odpoveď