码迷,mamicode.com
首页 > 其他好文 > 详细

哈希表2

时间:2017-09-29 16:46:34      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:nbsp   err   size   清空   book   空间   变量   参数错误   erro   

/****************************************************************************************
******功    能:遍历哈希表获取所有的用户名和电话号码
******输入参数:userName表示要查询的用户名
******          phoneNumberFound 用来存放查找到的电话号码(由调用者保证空间足够大)
******返 回 值:-1参数错误,0成功遍历,遍历结果放到全局变量userAndPhone内
*****************************************************************************************/
int getAllUserAndPhone()
{
    if (userCnt <= 0)
    {
        printf("invalid userCnt[%d].\n", userCnt);
        return ERROR_PARAMETER;
    }
    /* 先清空已保存的userAndPhone */
    if (NULL != userAndPhone)
    {
        free(userAndPhone);
        userAndPhone = NULL;
    }
    
    userAndPhone = (UserAndPhone*)malloc(userCnt * sizeof(UserAndPhone));
    
    PhoneBook *s, *tmp;
    int i = 0;
    HASH_ITER(hh, users, s, tmp)
    {  
        if (i == userCnt)        /* 保证数组不越界 */
        {
            return SUCCESS;
        }
        strcpy(userAndPhone[i].userName, s->userName);
        strcpy(userAndPhone[i].phoneNumber, s->phoneNumber);
        ++i;
    } 
    return SUCCESS;
}

/****************************************************************************************
******功    能:删除哈希表以及已遍历的所有的用户名和电话号码
******输入参数:无
******返 回 值:0成功删除
*****************************************************************************************/
int deleteAllUserAndPhone()
{
    if (NULL != userAndPhone)
    {
        free(userAndPhone);    
        userAndPhone = NULL;
    }
    PhoneBook *s, *tmp;
    /* free the hash table contents */  
    HASH_ITER(hh, users, s, tmp) 
    {  
      HASH_DEL(users, s);  
      free(s);  
    }
    userCnt = 0;
    users = NULL;
    return SUCCESS;
}

 

哈希表2

标签:nbsp   err   size   清空   book   空间   变量   参数错误   erro   

原文地址:http://www.cnblogs.com/gardonkoo/p/7611182.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!