truktura z procedurami alokowania i dealokowania

0
 #include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct tablica
{
    int liczba;
    char* tekst;
};
void alokowanie(struct tablica* p, char* zdanie)
{
    p->liczba=strlen(zdanie);

    p->tekst=malloc(((p->liczba)*sizeof(char))+1);

    strcpy(p->tekst, zdanie);

}
void zwolnij(struct tablica* p)
{
    if(p->tekst)
    {
        free(&p->tekst);
        p->tekst=NULL;

    }

}

int main()
{
    char* zdanie="Ala ma kota";

	struct tablica wyswietl;

	alokowanie(&wyswietl, zdanie);

	printf("%s\n", wyswietl.tekst);

	zwolnij(&wyswietl);

    return 0;
}



Źle mi się kompiluje, na winodwsie działało a teraz na linuksie nie działa poprawnie. Ktoś pomoże ?

0

Zwalniać (przekazywać do free()) masz dokładnie to co zwrócił malloc().

0

Źle mi się kompiluje

Jaki błąd?

nie każdy błąd widać na pierwszy rzut oka, oszczędź więc innym czasu na kompilowanie i uruchamianie twojego kodu, skoro możesz napisać co się dzieje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1