Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么要使用二维结构数组?_C_Arrays_Multidimensional Array_Struct_Dimensions - Fatal编程技术网

C 为什么要使用二维结构数组?

C 为什么要使用二维结构数组?,c,arrays,multidimensional-array,struct,dimensions,C,Arrays,Multidimensional Array,Struct,Dimensions,我很好奇是否有使用2D结构数组的情况,比如f.e: typedef struct { //member variables }myStruct; myStruct array2D[x][y]; //Uses cases of array2D[x][y]? Do we need them? 为什么要使用二维结构数组 为什么要使用二维结构数组 定义的结构基本上就是一种类型,与任何其他类型一样(当然,任何类型都不同,并且私有数据类型和标准数据类型之间存在差异;甚至不提及该类型的对象之间的内存分

我很好奇是否有使用2D结构数组的情况,比如f.e:

typedef struct
{
 //member variables
}myStruct;

myStruct array2D[x][y]; 
//Uses cases of array2D[x][y]? Do we need them?
为什么要使用二维结构数组

为什么要使用二维结构数组

定义的结构基本上就是一种类型,与任何其他类型一样(当然,任何类型都不同,并且私有数据类型和标准数据类型之间存在差异;甚至不提及该类型的对象之间的内存分配差异),您可以用它声明对象

您还可以问:为什么要使用
char
int
double
二维数组

这不仅仅是一种结构本身的东西

在代码中有一个清晰的“结构”取决于上下文及其价值;因此,如果您需要大量特定类型的对象(在本例中为结构),以这种方式编写代码可以帮助您使代码更可读、更清晰

也许你甚至想对一些对象进行分组和/或以不同的方式对待它们。在这种情况下,多个数组维度是有益的,因为您可以显式地分别寻址每个维度的对象

如评论中所述:


在二维数组中存储结构对象有益的一个明显示例是存储图片的像素。最好将“像素”结构对象存储在二维数组中,因为这模拟了图片是如何自然构建的。

我们可以添加更多问题:为什么要使用3D、4D。5D。。。。。。10000000个数组


项目中使用的数据结构取决于要解决的问题和选择的算法

嗯,所以根据你的答案,当你需要一个2D结构数组时,你可以使用它(也就是说,取决于上下文)?你可以添加一个明显的用例:存储图像。每个像素都存储在结构中,图像的所有像素都存储在二维数组中。大多数图像需要更多的元信息,所以这个数组可能是另一个
结构中的元素。这可能是以不同的方式对待它们,或者如果我有大量这种类型的对象的话,只是通过将它们分成几个维度来增加可读性。@thebusybee非常感谢您提供了一个很好的示例。这个问题之所以被否决,是因为它在某种意义上过于泛化吗?
struct RGB{float R;float G;float b};结构RGB显示[1920][1080]
@Leon它可能被否决了,因为这个问题显示的背景信息较少,研究工作较少,而且因为“应该”这个问题在社区中经常被否决。不幸的是,我经常在这里亲身经历这种情况。不要把它当成私人的。我认为这是一个很好的问题。@robertsmonicacellio啊,我明白了,这就是其中之一