- 论坛徽章:
- 0
|
下面是我的代码,但内存没有释放:
hash_map<const char*, int, hash<const char*>;, eqstr>; g_DataHashTable;
typedef struct {
int id;
char EnterpriseName[200];
char Linkman[100];
char Telephone[50];
} ST_Enterprise;
for(int i=0;i<200000;i++)
{
char *key=(char*)malloc( ;
memset(key,0, ;
ST_Enterprise *ep=(ST_Enterprise*)malloc(sizeof(ST_Enterprise));
memset(ep,0,sizeof(ST_Enterprise));
sprintf(key,"%d",i);
printf("#\n" ;
g_DataHashTable[key]=(int)ep;
printf("%d address is %d\n",i,ep);
}
char iStr[8];
memset(iStr,0, ;
hash_map<const char*, int, hash<const char*>;, eqstr>;::iterator m_ptr;
for(int i=0;i<200000;i++)
{
sprintf(iStr,"%d",i);
m_ptr=g_DataHashTable.find(iStr);
ST_Enterprise *ptr=(ST_Enterprise*)(m_ptr->;second);
g_DataHashTable.erase(m_ptr);
printf("%d\n",ptr);
free(ptr);
ptr=NULL;
} |
|