【发布时间】:2017-02-12 01:24:07
【问题描述】:
我正在尝试将字符串从一个结构中的字段复制到另一个结构(节点),以便最终创建一个哈希表。但是,我在实际的字符串复制中似乎遇到了一些问题。我创建了一个 for 循环来迭代源结构中的字符串,并且我知道迭代工作正常,因为如果我 printf 源字符串 (data[i].c_name),它们打印出来的效果很好。不幸的是,当我尝试打印目的地(class_id)时,它似乎是空的(因此我的哈希函数当然没有做太多)。对这里潜在问题的任何见解将不胜感激。如果我没有提供足够的上下文,请告诉我。
#define LENGTH 30
#define MAX_OBS 80000
typedef struct
{
char c_name[LENGTH];
char s_name[LENGTH];
double value[MAX_OBS];
}
sample;
typedef struct node
{
char class_id[LENGTH];
struct node *next;
}
node;
{
char class_id[LENGTH];
for (int i = 0; i < total_columns; i++)
{
// malloc a new node pointer for each new class label
node *new_node = malloc(sizeof(node));
// check that there was sufficient memory
if (new_node == NULL)
{
return 6;
}
// copy c_name into node -- failing - class_id is empty
strcpy(new_node->class_id, data[i].c_name);
printf("%s\n", class_id);
}
}
【问题讨论】: