我试图编写张量代数,为此我需要一些在编译时尺寸未知的数组(请回想一下,方括号内的文字不是实际代码):
float [undetermined number of *'s] element; //elements of the tensor
unsigned int co_index;
unsigned int contra_index;
unsigned int N;
其中"元素"变量有多少" *"符号为(co_index + contra_index);有没有办法做到这一点,定义"维度" "元素"执行时变量?
我的意思的一个例子:if(co_index + contra_index = 3),"元素"的内存分配应该是这样的:
elemento = (float***)malloc(sizeof(float**) * N);
for(i=0;i<N;i++)
elemento[i]=(float**)malloc(sizeof(float*) * N);
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
elemento[i][j]=(float*)malloc(sizeof(float) * N);
}
这个&#34;浮动维度&#34;数组一般是在执行时定义的吗?