从具有连续数据的矩阵访问数据

时间:2016-02-18 13:48:37

标签: c matrix

我编写了一个创建带有连续数据的矩阵的函数,但我不明白如何访问这些数据。功能是:

int create_matrix(struct matrix *a, size_t m, size_t n)
{
   a->m=m; 
   a->n=n;

   a->data = malloc(a->n*sizeof(double*));
   a->data[0] = malloc((a->n*mat_somma->m)*sizeof(double));

   for (size_t r=1;r<mat_somma->N;++r)
   {
      a->data[r]=a->data[0] + a->m*r;        
   }

   return 1;
}

编辑: 这是矩阵中连续数据的一个例子,但是用它来访问 双指数。如果在此处找到:http://www.geeksforgeeks.org/dynamically-allocate-2d-array-c/

我在a-&gt; data [0] = malloc .....中出错:无法从void转换为double(在visual studio上)。

1 个答案:

答案 0 :(得分:0)

具有连续数据的矩阵可用于例如单行中的所有行(行主要)。所以

  1. a->data的类型为double*
  2. 你会分配如:a->data = malloc(m*n*sizeof(double));
  3. 您可以访问rowcol的元素:a->data[row*n + col]
  4. 假设m是行数,n是列数