[C] Wycieki pamięci

Draqun

Użytkownik
Dołączył
Sierpień 27, 2007
Posty
67
Witam.

Ponownie mam problem z tym diabelskim przydzielaniem pamięci w C. Oto kod.
Plik nr1
Kod:
#include<stdio.h>
#include<stdlib.h>
#include"libra.h"

char **teren();
int findhero(char***);
int main()
{
	int i;
	Plecak=(struct Backpack*)malloc(sizeof(struct Backpack));
	Plecak->klucz1=0;
	Plecak->klucz2=0;
	Plecak->cash=0;
	Gdzie=(struct Kordy*)malloc(sizeof(struct Kordy));
	char **plansza=teren();
	findhero(&plansza);
	ruch(&plansza);	

	free(Plecak);
	free(Gdzie);
	for(i=0;i<20;i++)
	{
		free(plansza[i]);
	}
	free(plansza);
	return 0;
}

char **teren()//funkcja pobiera z pliku tekstowego plansze i umieszcza ja w tablicy, która ma przydzielona pamieć ram
{
	char **plansza;
	int ROZ_X=21, ROZ_Y=21;
	int i,j;
	FILE*plik;
	plik=fopen("map.txt", "r");
	if(plik==NULL)
	{
		return NULL;
	}
	plansza=(char**)malloc(sizeof(char*)*20);//przydzielamy pamięć tabeli na adresy

	for(i=0;i<ROZ_X;i++)
	{
		plansza[i]=(char*)malloc(sizeof(char)*20);//przydzielamy wierszom pamięć
	}

	for(i=0;i<ROZ_X;i++)//umieszczamu mapę w tablicy :)
	{
		for(j=0;j<ROZ_Y;j++)
		{
			fscanf(plik,"%c", &plansza[i][j]);
		}
	}
	for(i=0;i<ROZ_X;i++)//umieszczamu mapę w tablicy :)
	{
		for(j=0;j<ROZ_Y;j++)
		{
			printf("%c", plansza[i][j]);
		}
	}
		
	fclose(plik);
	return plansza;
}

int findhero(char ***hero)
{
	int a,b;
	
	for(a=0;a<20;a++)
	{
		for(b=0;b<20;b++)
		{
			if(*hero[a][b]=='0')
			{
				Gdzie->WYS=a;
				Gdzie->SZER=b;
			}
		}
	}
	return 0;
}
Biblioteka
Kod:
struct Backpack
{
	int klucz1;
	int klucz2;
	int cash;
};

struct Kordy
{
	int SZER;
	int WYS;
};

struct Backpack *Plecak;
struct Kordy *Gdzie;

Otóż w funkcji find hero następuje wyciek pamięci. Jak się można domyśleć program skompiluje, jednak po uruchomieniu dostajemy z bańki Naruszenie pamięci. Przypuszczam, ze chodzi o przypisanie strukturze Gdzie konkretnych wartości jednak nie bardzo wiem jak sobie z tym poradzić.

Proszę o pomoc a ja tymczasem sam rozgryzam co jest nie tak ;)


EDYTA

PROBLEM ROZWIĄZANY. TEMAT DO KOSZA :)
 
Ostatnia edycja:
Do góry Bottom