【发布时间】:2013-10-26 06:19:01
【问题描述】:
我定义了一个结构。
typedef struct bucket {
char *key;
void *value;
struct bucket *next;
} Bucket;
此函数在名为“htable.h”的文件中定义。
int put(Table *table, const char *key, void *value) {
Bucket insertBucket;
strcpy(insertBucket.key, key);
return 0;
}
这不应该有效吗?
【问题讨论】:
-
应该的。是什么让你相信它不是?
-
此处出现运行时错误
strcpy(insertBucket.key, key); -
char *key,Bucket的成员,需要在strcpy之前malloc'ed。
-
您忘记复制值或设置
next字段,这两者都会给您留下一些需要解决的问题。put()函数真正想要做什么?值所指向的数据有多大?你怎么知道的? -
@self。好吧,那么声明就没有问题了。这是一个语义错误。