退出方法后,结构变量将立即更改值

时间:2019-05-30 16:48:34

标签: c++ visual-c++ dynamic-memory-allocation calloc

im为我的课程构建一个小程序,其中我必须使用LIST_ENTRY字段创建类似于Hashmap的我的版本。 我正在尝试创建一个LIST_ENTRY数组。我尝试使用calloc将LIST_ENTRY的每个Link设置为0,但是当我进入调试模式时,一旦退出我的create方法并输入下一个方法,值就会完全改变。我将在这里留下方法和结构的代码。

typedef struct ConcurrentHashMap {
    DWORD           capacity;
    ULONG           ocupied;
    LIST_ENTRY  *       HashMap;
} ConcurrentHashMap;
ConcurrentHashMap * CHashMapCreate(DWORD capacity) {
    ConcurrentHashMap res;
    ConcurrentHashMap * resp=&res;
    resp->capacity = capacity;
    resp->ocupied = 0;
    resp->HashMap =(LIST_ENTRY *) calloc(capacity,sizeof(LIST_ENTRY));
    return resp;
}
int main() {

    ConcurrentHashMap * res = CHashMapCreate(10);
    CHashMapPut(res, 10, 11);
}

在ChashMapPut做任何事情之前,值都会更改。

0 个答案:

没有答案