我使用 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] 删除。
我来说两句