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