我不确定我到底需要用什么作为参数malloc
来分配空间table_allocate(int)
功能。我只是想count_table* cTable = malloc(sizeof(count_table*))
,但这对 size 参数没有任何作用。我应该为list_node_t
还?以下是我正在处理的内容。
在 .h 文件中,我得到了这个签名:
//create a count table struct and allocate space for it
//return it as a pointer
count_table_t* table_allocate(int);
这是我应该使用的结构:
typedef struct list_node list_node_t;
struct list_node {
char *key;
int value;
//the next node in the list
list_node_t *next;
};
typedef struct count_table count_table_t;
struct count_table {
int size;
//an array of list_node pointers
list_node_t **list_array;
};
count_table* cTable = malloc(sizeof(count_table*))
是错的。它应该是
count_table* cTable = malloc(sizeof(count_table));
此外,您还必须单独为 list_node_t 分配内存。
EDIT:
除了 Clifford 指出的为列表节点分配内存之外,我认为内存分配也应该考虑到char *key
列表节点内部。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)