C语言 如何访问动态矢量的元素



我想通过函数从矩阵移动到动态向量。然后为了验证一切顺利,我想打印矢量元素。

功能:

    float **v;
    float ** matrix_to_vector(const float m[][2],size_t n){
    v = (float **)malloc(n * sizeof(float*));
        for(i=0;i<n;i++){
        v[i] = (float *)malloc(n * sizeof(float)); 
    for(j=0;j<MAX_COLS;j++){
        *(v[i]) = m[i][j];
    }
}
return v;
}
On main():
float ** vector;
vector = matriz_a_vector(m,cantidad);
for(i=0;i<cantidad;i++){
    for(j=0;j<MAX_COLS;j++){
        printf("%ft",*(vector[i]));
    }
    printf("n");
}

我的问题是我总是保留 M [ I][ 1] 元素,因为当循环完成时,它总是在 v [ I] 中保持值。当我打印时,向量只打印 M [ I] [ 1] 的值,因为它是保留变量的值。如何访问所有元素并将它们全部打印出来?

已解决。一旦在第一个 for 中请求了 v [i] 的内存,它就会复制创建的向量中的矩阵值。然后我做了一个功能来打印那个矢量。

for(i=0;i<n;i++){
        for(j=0;j<MAX_COLS;j++){
            v[i][j] = m[i][j];  
        }
    }   

相关内容

  • 没有找到相关文章

最新更新