我的方法如下 -
int rtable_add(RESIZABLE_TABLE * table, char * name, void * value) {
char *foo = malloc(sizeof(char) * 1024);
foo = name;
//Need to do the same for value
table->array[table->currentElements].name = strdup(foo);
table->array[table->currentElements].value = value;
table->currentElements++;
}
我将传递给此方法的元素添加到表中。参数值是void类型,基本上可以是char *或long。我想将这个值添加到我的表中,但是按照当前的方式我正在做,它会添加不合理的值。我认为在我为#34;值"做之前我需要分配内存。但不确定在我的情况下我怎么会为了一个空白?
编辑:我发现这些方法正在调用rtable_add向表中添加元素 -
int rtable_add_str(RESIZABLE_TABLE * table, char * name, char * str_value)
{
return rtable_add(table, name, (void *) strdup(str_value));
}
int rtable_add_int(RESIZABLE_TABLE * table, char * name, long int_value)
{
return rtable_add(table, name, (void *) int_value );
}