Programm ist undicht Speicher und nicht in der Lage, es zu reparieren ... Dieses Programm liest Daten aus Textdateien und nach dem Lesen von Daten, führen Sie bestimmte Operation auf Daten während dieser Speicher leckt. Gerät hat sehr begrenzten Speicher & Flash-Laufwerk aufgrund dieser kann ich keine Speicherlecks Prüfwerkzeuge ausführen. Bitte geben Sie untenC Speicherleck Problem
int LanguageRequiredData(void)
{
char *data=NULL;
int retValue = 0 ;
retValue = GetString_English(&data);
if(retValue>0 && strlen(data)>0)
{
// Do Some Operation
}
if (data!=NULL)
{
Mem_free(data);
data = NULL;
}
}
int GetString_English(char **data)
{
int retValue = 0 ;
retValue = File_LoadContent(LANGSENGFILE,&(*data));
return retValue;
}
int File_LoadContent (char *file, char **content)
{
long size = File_Size(file);
char buf[256]={};
memset(buf,0x00,sizeof(buf));
if (*content)
{
Mem_free(*content);
}
*content = (char*) Mem_alloc((size+1) * sizeof(char));
TFILE * fd; fd=File_Open(file,"r"); if (fd==NULL) return 0;
while (File_Gets(buf,sizeof(buf),fd)!=NULL)
{
strcat(*content,buf);
memset(buf,0x00,sizeof(buf));
}
File_Close(fd); return 1;
}
void * Mem_alloc(size_t size)
{
int i;
void * ptr = NULL;
for (i = 0; i < 2; i++)
{
ptr = malloc(size);
if (ptr)
{
break;
}
}
if (ptr)
{
memset(ptr, 0, size);
}
return ptr;
}
void Mem_free(void * ptr)
{
if (ptr != NULL)
{
free(ptr);
}
ptr = NULL;
}
und was hast du bis zur zeit versucht? –
Willkommen bei Stack Overflow! Bitte zeigen Sie Ihre Recherche/Debugging-Aufwand bis jetzt. Bitte lesen Sie zuerst die [Ask] -Seite. –
Sie kümmern sich um die Erstellung eines [___MCVE___] (http://stackoverflow.com/help/mcve)? –