時々、マトリックススタイルのデータ構造を生成するために次のコードを使用します
typedef double myType;
typedef struct matrix_t{ |Compilation started at Mon Apr 5 02:24:15
myType **matrix; |
size_t x; |gcc structreaderGeneral.c -std=gnu99 -lz
size_t y; |
}matrix; |Compilation finished at Mon Apr 5 02:24:15
|
|
matrix alloc_matrix(size_t x, size_t y){ |
if(0) |
fprintf(stderr,"\t-> Alloc matrix with dim (%lu,%lu) byteprline=%lu bytetotal:%l\|
u\n",x,y,y*sizeof(myType),x*y*sizeof(myType)); |
|
myType **m = (myType **)malloc(x*sizeof(myType **)); |
for(size_t i=0;i<x;i++) |
m[i] =(myType *) malloc(y*sizeof(myType *)); |
|
matrix ret; |
ret.x=x; |
ret.y=y; |
ret.matrix=m; |
return ret; |
}
そして、マトリックスのエントリに別の種類のタイプが必要な場合は、それに応じてtypedefを変更します。
ここで、異なるタイプの2つのマトリックスが必要です。簡単な解決策は、コードをコピーして貼り付けることですが、より一般的な実装を行う方法はあります。
ありがとう
編集:私はそれがc++ではなくcにあることを明確にする必要があります。それを明確にしないでごめんなさい。