在执行时定义数组维度

时间:2018-06-01 10:28:54

标签: c

我试图编写张量代数,为此我需要一些在编译时尺寸未知的数组(请回想一下,方括号内的文字不是实际代码):

     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;数组一般是在执行时定义的吗?

0 个答案:

没有答案