0
4

2 回答 2

2

这个:

sizeof(user_info*)

应该是这样的:

sizeof(user_info)

您需要结构本身的大小,而不是指向它的指针的大小。现在,您的memcpy()调用并未因此复制所有数据。

同样,listNode *node = malloc(sizeof(listNode))应该也是listNode *node = malloc(sizeof(*node))出于同样的原因。我假设node->data = malloc(list->elementSize);一旦您将正确的尺寸传递给list_new().

于 2013-10-18T19:26:50.100 回答
1

list->elementSize 设置为什么?

另一个潜在问题:

您正在存储指向字符串所在内存的指针。假设您解析一个字符串然后存储一个指针。稍后,如果字符串被解除分配,则指针将指向稍后放置在那里的任何内容。调试起来会很困难。确保在使用列表期间保留您的字符串。

于 2013-10-18T19:28:07.083 回答