我需要创建一个变量,该变量接收数组 format ,但不接收数组位置的确切值。我怎样才能做到这一点?下面的示例显示了我要执行的操作(不是为了正常运行,只是为了表明我的意图)。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int i, j, m = 30;
double T[m][m], aE = 3, TE;
TE = T[i][j+1];
for (i = 1; i < 30; i++)
for (j = 1; j < 30; j++)
T[i][j] = (aE * TE);
getch();
return (0);
}
好吧,该数组将具有许多double
值,我希望TE
指向或像T[i][j+i]
结构那样工作,以便我可以使用TE
每当我需要T
数组的那个位置时。
这怎么可能?
答案 0 :(得分:0)
您的示例中存在一些错误,这些错误会导致无法编译(我想这是使我们了解结构外观的女仆)。我会在这里尝试编写一个可以执行类似操作的版本。
#ifdef MALLOC_ME
int i, j, m;
m = inputed_matrix_size;
double **T = malloc(sizeof(double) * m * m);
#else
# define MATRIX_SIZE 30
int i, j, m = MATRIX_SIZE;
double T[MATRIX_SIZE][MATRIX_SIZE];
#endif // MALLOC_ME
// I'll assume we put some defined value in the first line, first column
// that will be used as source in later calculation.
T[0][0] = value;
double *TE = &T[0][0];
double aE = some_indice_value;
for (i = 0 ; i < m ; i++)
for (j = 0 ; j < m ; j++)
{
if (i == 0 && j == 0)
continue; // lets not override our template value;
T[i][j] = aE * (*TE);
// *TE is the double value contained at the position of the array stored earlier
}