用于在C中的结构数组中打印每个结构的成员的函数

时间:2018-09-27 23:28:18

标签: c arrays struct printf

我正在尝试用C语言编写一个函数,该函数将一个结构数组(保存员工信息的结构)作为参数,并打印每个结构的每个成员。由于某种原因,我的代码未产生任何输出。谁能告诉我我要去哪里错了?谢谢。

这里是:

var text = "<div><p>Line 1</p><p>Line 2</p></div>" 
doc.fromHTML(text,38,10).

2 个答案:

答案 0 :(得分:2)

问题出在这里:void employeePrint(Employee arr[])for(i = 0; i < sizeof(arr)/sizeof(arr[0]); ++i)。当您将数组传递给类似的函数时,它将分解为指针。指针不再存储原始数组的大小,因此sizeof(arr)为您提供了一个指针的长度,该长度小于您的结构,因此除法取整为0。要解决此问题,请将大小传递为另一个参数,或者使用某种类型的哨兵来知道何时停止循环。

答案 1 :(得分:2)

替换:

void employeePrint(Employee arr[])

具有:

void employeePrint(size_t len, Employee arr[len])

然后在函数调用中传递数组的长度,它将产生您想要的内容。