我编写了一个创建带有连续数据的矩阵的函数,但我不明白如何访问这些数据。功能是:
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上)。
答案 0 :(得分:0)
具有连续数据的矩阵可用于例如单行中的所有行(行主要)。所以
a->data
的类型为double*
。a->data = malloc(m*n*sizeof(double));
row
和col
的元素:a->data[row*n + col]
假设m
是行数,n
是列数