首页 新闻 搜索 专区 学院

这个C++函数错哪里?while里面的delete报错了,下面的delete估计也报错

0
悬赏园豆:5 [已解决问题] 解决于 2012-11-16 23:05
BOOL IsInDays(int day,string monthdays)
{
    
    char *tmp = new char[3];
    memset(tmp,0,sizeof(char)*3);
    itoa(day,tmp,10);
    int len = strlen(monthdays.c_str())+1;
    char *days = new char[len];
    memset(days,0,len);
    strcpy_s(days,len,monthdays.c_str());
    char *c_strDay; 
    char **p = &days;
    c_strDay = strsep(p, ",");
    
    while(c_strDay)
    {  
        if (strcmp(c_strDay,tmp)==0)
        {
            p = 0;
            delete [] days;
            days = NULL;
            delete []tmp;
            tmp = NULL;
            return TRUE;
        }
        c_strDay = strsep(p, ",");   
    }
    p=0;
    delete [] days;
    days = NULL;
    delete []tmp;
    tmp = NULL;
    return FALSE;

}
IT Giant的主页 IT Giant | 初学一级 | 园豆:7
提问于:2012-09-03 18:46
< >
分享
最佳答案
0

我编译delete是没有问题的。而且你的delete释放内存句法是没有问题的。int *pt = new int; delete pt即可。int *ps = new int [10],释放内存就用delete [] ps;这是正确的。你再看看其他问题吧

收获园豆:5
第五元素~MJ | 初学一级 |园豆:6 | 2012-09-07 09:28
其他回答(1)
0

delete days;

这样试试

56180825 | 园豆:1165 (小虾三级) | 2012-09-03 20:14

数组是不能这样删除的

支持(0) 反对(1) IT Giant | 园豆:7 (初学一级) | 2012-09-03 21:24

@IT Giant:那用FREE吧 

支持(0) 反对(0) 56180825 | 园豆:1165 (小虾三级) | 2012-09-03 22:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册