大小未知时创建指针数组(稀疏矩阵)

时间:2011-12-02 19:39:46

标签: c sparse-matrix

考虑下面的代码,我试图制作一个包含指针数组的Sparse_matrix。在“struct Sparse_matrix”中,这是在大小未知时创建指针数组的正确方法吗? C程序员解决这个问题的方法是什么?我是C的新手。

感谢您的帮助

#include "sparse_matrix.h"
struct Node{
    short data;
    unsigned short row;
    Node* next;
};

struct SPARSE_MATRIX {
    unsigned short cols;
    Node* list[0];
};

SparseMatrix *create(unsigned short rows, unsigned short cols){
    SparseMatrix* matrix=malloc(cols*sizeof(Node*)+sizeof(unsigned short));
    matrix->cols=cols;

    for(int i=0;i<cols;i++){
        matrix->list[i]=NULL;
    }
    return matrix;
}

1 个答案:

答案 0 :(得分:1)

更好写

  SparseMatrix* matrix=malloc(cols*sizeof(Node*)+sizeof(SparseMatrix));

因为对齐和间隙