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做任何事情之前,值都会更改。