Zmienna jako nazwa pliku w fopen

0

int main()
{
    char *name=(char*)malloc(50*sizeof(char));

    printf("Podaj nazwe pliku: ");
    scanf("%s",name);

    *srednia(name); 
    return 0;
}

int *srednia(char *nazwa)
{
    nazwa = (char*)malloc(50*sizeof(char));
    int liczba,rozmiar,i;
    FILE *plik1,*plik2;
    plik1 = fopen(nazwa,"r");
    plik2 = fopen("temp.txt","w");

    while(fscanf(plik1,"%d",&liczba)!=EOF)
    {
        if (liczba>0) 
        {
            fprintf(plik2,"%d\n",liczba);
            rozmiar++;
        }

    }

    fclose(plik1);
    fclose(plik2);

Chodzi mi konkretnie o tą linijkę:

plik1 = fopen(nazwa,"r"); 

Jeśli w pierwszym parametrze podam nazwe pliku np. "plik.txt" to program działa dobrze. Ale jeśli podam zmienną nazwa, która jest wskażnikiem do tablicy typu char, program nie wykonuje operacji na tym pliku.

3

Zaraz na początku funkcji srednia nadpisujesz zmienną nazwa. Z resztą kompletnie bez sensu.

0

dzięki, niezbyt rozumiem wskaźniki, usunalem i dziala

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