为虚空星分配内存

时间:2014-09-21 21:56:27

标签: c pointers malloc

我的方法如下 -

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 );
}

0 个答案:

没有答案