【问题标题】:Is there any way to quickly initialize memory to known values after malloc()?有什么方法可以在 malloc() 之后快速将内存初始化为已知值?
【发布时间】:2023-02-10 05:57:57
【问题描述】:

我在 C 中有一个程序,我需要用初始值初始化数组。 这个程序有两个版本,一个是静态分配内存,另一个是动态分配内存分配()(在每种情况下,大小和初始值都是先验已知的)。

在第一种情况下,数组通过包含其定义的标头进行初始化,例如。

float test_data[FEATURES][N][SAMPLES_BATCH] = {-0.715339, -0.50792, -0.307726, ...,};

另一方面,对于第二种情况,我想知道是否有一种方法可以在快速分配后初始化内存,否则替代方法是使用一系列 for 循环。

【问题讨论】:

    标签: c multidimensional-array


    【解决方案1】:

    您可以拥有一个包含初始值的静态数组,并将其memcpy分配给分配的内存。

    static float init_data[] = { 1.0, 2.0, 3.0 };
    float *test_data = malloc(sizeof init_data);
    memcpy(test_data, init_data, sizeof init_data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 2021-10-16
      • 1970-01-01
      • 2016-05-11
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多