我写了一个链表库,用于教育自己编写 C 语言并做一些与我的信息技术学习相关的事情。我发现,由于 sizeof(double) 在 4.9 中被解析为 0,所以出现了严重错误:
double ary[] = { 1.0, 2.0, 3.5, 4.9, 5.5 };
LinkedList *list = linkedlist(&ary[0], sizeof(ary[0]));
for( i = 1; i<len(ary); i++ )
ll_push(list, &ary[i], sizeof(double) );
对于 1.0、2.0 和 3.5,一切都很好,但对于 4.9,它失败了。以前,我在代码中有 sizeof(ary[i]),但现在 sizeof(double) 以相同的方式产生结果。
我真的很生气。谁能解释一下,为什么会这样?