我遇到一个我希望有一个指针数组(M行,N列)的情况,这个数组的每个成员都指向一个浮点向量(L长度)。你能告诉我如何建立吗?我希望我可以动态建立它,因为我通常不知道M,N和L,而L可能与差矢量不同。
我的场合是我需要读取不同距离(NDIS)和深度(NDP)的格林函数。所以我需要创建类似* grn [NDP] [NDIS]的东西。然后使用此数组的每个指针指向绿色函数的组件。
顺便说一句,我认为它比设置一个已知大小的指针数组有点复杂。您认为使用这种类型的数据结构是否值得?我正在尝试编写一个程序来处理观察,我通常不知道它的大小。 但是,我可以使用大小固定的指针数组。如果总数据大于给定大小,我可以忽略超大部分。但我希望能全部使用它们。
答案 0 :(得分:0)
您需要使用二维数组并需要动态分配它,如下所示:
int i, j;
float **arr;
arr = malloc(sizeof(float*) * Size1); //1st array setup
for(i = 0; i < Size1; i++)
arr[i] = malloc(sizeof(float*) * Size2); // 2nd array setup at each element of 1st array
现在像这样访问它:
for(i = 0; i < Size1; i++)
for(j = 0; j < Size2; j++)
printf("%f", arr[i][j]);
Size1
&amp; Size2
是第一个数组和第二个数组的大小。
您可以在第一个数组元素中设置不同大小的单个数组,因为您需要在没有循环的情况下更改Size2
变量。
希望这会有所帮助。