【发布时间】:2017-02-19 14:58:00
【问题描述】:
当我继续学习 C 语言时,我产生了疑问。使用每个元素都是结构的数组和使用每个元素都是指向相同类型结构的指针的数组之间有哪些区别。在我看来,您可以平等地使用两者(尽管在指针中您必须处理内存分配)。有人可以解释一下在哪种情况下使用其中一种更好吗?
谢谢。
【问题讨论】:
-
一个例子:使用
qsort对指针数组进行排序可能比对结构数组排序更快(如果结构非常大),因为交换两个指针会更快而不是交换两个结构。 -
^ OTOH,对结构数组的顺序传递将更加缓存友好,并且在每一步都不需要额外的间接。
-
我不认为这个问题太宽泛:每种方法的优缺点都有一定程度的个人意见,但问题是真正的询问并列出两种解决方案的相关特征似乎可行。
标签: c data-structures