在 c 中初始化动态数组

哈利

我使用 malloc 创建了一个动态数组,在初始化它时,出现错误。我在这里做错了什么?

float* data_input = malloc(4 * sizeof(float));
data_input = {1.2, 2.4, 3.2, 4.5};

错误:

model.c: In function ‘main’:
model.c:9:18: error: expected expression before ‘{’ token
    9 |     data_input = {1.2, 2.4, 3.2, 4.5};
埃里克·波斯皮希尔

C 中没有{1.2, 2.4, 3.2, 4.5}表示数组的语法

在初始化中,{1.2, 2.4, 3.2, 4.5}表示可用于初始化数组元素的初始化器列表。

float *data_input = malloc(4 * sizeof *data_input);(并检查 的返回值malloc不是空指针)之后,您可以通过单独初始化每个元素来初始化数组:

data_input[0] = 1.2;
data_input[1] = 2.4;
data_input[2] = 3.2;
data_input[3] = 4.5;

或者您可以从复合文字复制数组

memcpy(data_input, (float []) {1.2, 2.4, 3.2, 4.5}, 4 * sizeof *data_input);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章