C 如何在单个数组中创建多个成员

C 如何在单个数组中创建多个成员,c,structure,C,Structure,我会问用户矩阵的数量,然后随机5x5矩阵为每一个。我可以在单个结构中执行此操作吗。如果是这样的话,那么我应该如何为它分配内存呢?我试着这样做,但没有成功 struct Temp { int *mat[5][5]; }test; int main(void) { int x; printf("Enter the number of matrixes : "); scanf("%d", &x);

我会问用户矩阵的数量,然后随机5x5矩阵为每一个。我可以在单个结构中执行此操作吗。如果是这样的话,那么我应该如何为它分配内存呢?我试着这样做,但没有成功

struct Temp
{
    int *mat[5][5];

}test;

int main(void)
{
    

    int x;

    printf("Enter the number of matrixes : ");
    scanf("%d", &x);

    test.mat= malloc( x* sizeof *test.mat);
    if (test.mat== NULL) {
        fprintf(stderr, "Malloc failed.\n");
        exit(1);
    }
int*
的5x5数组

要创建指向
int
的5x5数组的指针,应该

int (*mat)[5][5];
int*
的5x5数组

要创建指向
int
的5x5数组的指针,应该

int (*mat)[5][5];

我认为指针不是必需的,OP只需要一个int的2D数组,但并没有完全得到指针。另外,malloc行可能不希望sizeof中出现差异。@Skizz这个答案是正确的。OP需要
x
count5x5
int
矩阵(“向用户询问矩阵的数量”),这是获取矩阵的方法。此外,取消引用也没有错,因为它不是实际的取消引用,它是一种向编译时运算符(
sizeof
)馈送的类型,假设采用了Mike建议的更改。@WhozCraig是的,但是我想知道OP是否真的想要一个包含指向int的指针矩阵的结构。创建一个包含int的martrix的结构不是更明智吗,这样可以减少所需的分配并减少内存泄漏的可能性?我认为指针不是必需的,OP只需要一个int的2D数组,但并没有完全实现指针的功能。另外,malloc行可能不希望sizeof中出现差异。@Skizz这个答案是正确的。OP需要
x
count5x5
int
矩阵(“向用户询问矩阵的数量”),这是获取矩阵的方法。此外,取消引用也没有错,因为它不是实际的取消引用,它是一种向编译时运算符(
sizeof
)馈送的类型,假设采用了Mike建议的更改。@WhozCraig是的,但是我想知道OP是否真的想要一个包含指向int的指针矩阵的结构。创建一个包含int的martrix的结构,从而减少所需的分配并减少内存泄漏的可能性,不是更明智吗?