Naruszenie ochrony pamięci.

Odpowiedz Nowy wątek
2016-12-05 19:50
0

Witam!
Mam problem. Piszę programik na zajęcia, ale nie mogę podołać jednej rzeczy. Przy kompilacji wyrzuca mi komunikat zawarty w tytule. Poprawności reszty kodu nie jestem w stanie sprawdzić, ponieważ nawet nie mogę uruchomić programu. Program ma wczytywać dane z pliku do tabeli, nastepnie liczyć ilość znaków i zapisywać w drugim pliku.

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

void wczytaj(unsigned nr_linii, char *teksty, char* TEKST)
    {
        int a;
        for(a=nr_linii;a<6;a++)
        {
            fgets(TEKST[a], 81, teksty);
            printf ("%s", TEKST[a]);

            if (a==5) a=0;
            else if (a==nr_linii-1) break;
        }
    }

void zapisz(char *teksty, char* TEKST)
{
    int l=0;
    int a;

    for (a=0;a<5;a++)
    {
        l=strlen("TEKST[a]")+l;
    }
    fprintf(teksty, "%d", l);
}

int main(int argc, char **argv)
{
    char TEKST[5][81];
    FILE *teksty;
    FILE *zapis;
    unsigned nr_linii=1;

    teksty=fopen("teksty.txt", "r");
    wczytaj(nr_linii, teksty, TEKST);
    fclose(teksty);
    zapis=fopen("zapis.txt", "w");
    zapisz(zapis, TEKST);
    fclose(zapis);

    return 0;
} 

----EDIT.----
Problem rozwiązany :)

edytowany 1x, ostatnio: biglou, 2016-12-05 20:46

Pozostało 580 znaków

2016-12-05 22:00
0

Pierwszy błąd

 fgets(TEKST[a], 81, teksty);

a jest to konsekwencja wywołania wczytaj(nr_linii, teksty, TEKST);


 w kontekście do deklaracji - są to różne funkcje, niespójna obsługa ect - poczytaj raz jeszcze o tablicach wielowymiarowych i przekazywaniu ich do funkcji

Ogólnie na prace domowe mam stawki zaporowe. Czasem coś o programowaniu znajdzie się na mojej stronie

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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