Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 固定大小数组的动态数组_C_Arrays_Pointers - Fatal编程技术网

C 固定大小数组的动态数组

C 固定大小数组的动态数组,c,arrays,pointers,C,Arrays,Pointers,如何分配由固定大小的浮点数组组成的数组? 我试过这个: float **sub_uvs = malloc(sizeof(float [2]) * size * size); /* Seg. fault */ sub_uvs[0][0] = 0.3; sub_uvs[0][1] = 0.4; 您必须为第二个数组执行另一个单独的分配,可能需要使用另一个调用MEM\u allocN。您还必须使用平台提供的任何释放功能单独释放此内存 内存表示形式将完全不同,因此,即使在某些地方它在语法上更方便,但在任

如何分配由固定大小的浮点数组组成的数组? 我试过这个:

float **sub_uvs = malloc(sizeof(float [2]) * size * size);
/* Seg. fault */
sub_uvs[0][0] = 0.3;
sub_uvs[0][1] = 0.4;

您必须为第二个数组执行另一个单独的分配,可能需要使用另一个调用
MEM\u allocN
。您还必须使用平台提供的任何释放功能单独释放此内存


内存表示形式将完全不同,因此,即使在某些地方它在语法上更方便,但在任何地方都很难做到这一点。

可变大小的多维数组仍然很棘手。有几种选择:

  • 使用指向数组的指针数组。对指针数组使用一个
    malloc
    ,然后循环
    malloc
    以生成每一行数组。但是,这是一个完全不同的数据结构

  • 查找提供内存管理和多维索引方法的类。也许搅拌器有一个

  • 使用或类似的完整数学库

  • 或者您可以使用以下命令:)

    float**a;
    a=(浮动**)malloc(浮动*大小*行);
    
    对于(int i=0;i什么是
    MEM_-mallocN
    ,为什么要使用它?谷歌说
    MEM_-mallocN
    来自Blender,它需要一个大小和一个标记字符串。是的,我想可能会写这样的东西
    float**sub_-uvs=malloc(sizeof(两个float)*size*size);
    ,我将只使用一个结构。@MacelaruTiberiu问题是,
    **
    表示指向数组的指针数组,但您试图将其用作一个多维数组。
    float **a;
    a = (float **)malloc(sizeof(float *) * size_row);
    
    for(int i=0;i<size_row;i++)
    {
        a[i] = (float *)malloc(sizeof(float) * size_col);
    }
    a[0][0] = 0.4;
    
    printf("%f",a[0][0]);