我正在尝试决定我应该使用哪个。
指向我能想到的结构的指针的优点。
- 如果您不使用数组的所有元素,则浪费的空间会更少。
- 交换数组元素时较少听到
双方还有其他利弊吗?
最佳答案
这些方法还有一些其他差异:
- 指针数组方法减少了调整数组大小的开销;
- 指针数组方法为您提供“空”/“未使用”值 (NULL)。如果这在您的应用程序中在语义上是有效的,那么这是一个优势(您不必更改您的
struct
本身来表达这一点); - 指针数组方法允许数组的多个元素引用相同的
struct
而不是副本。同样,如果这种情况对您的应用程序来说在语义上是合理的,那么这只是一个优势; - 结构数组方法提供了更多的引用局部性(
struct
在数组中靠得很近,在内存中也靠得很近,这在某些情况下可能是一种性能优势);< - 对于非常大量的项,结构数组方法需要一个大的连续内存块,如果您的进程地址空间变得碎片化,这可能不可用。
关于c - 使用结构数组与结构指针数组的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8997729/