我在 c 文件中有两个不同的结构,结构 A 和 B:
typedef Struct _A
{
float arr[4];
}A;
typedef struct _B
{
float const x;
float const y;
}B;
A* objA = (A*)malloc(sizeof(A));
B* objB = (B*)malloc(sizeof(B));
我需要做的是用 struct B 中的值分配 arr 值
objA->arr = {objB->x, objB->y, objB->x, objB->x}; /// getting an error here : expression must be a modifiable lvalue.
到目前为止,我有 memcpy,但这会导致另一个错误“预期表达式”。 有什么办法可以做到这一点吗?
提前致谢!
最佳答案
您不能直接分配给数组。您需要单独分配给每个成员:
objA->arr[0] = objB->x;
objA->arr[1] = objB->y;
objA->arr[2] = objB->x;
objA->arr[3] = objB->x;
或者使用 memcpy
并以复合文字作为源:
memcpy(objA->arr, (float[4]){objB->x,objB->y,objB->x,objB->x}, sizeof(float[4]));
关于c - 错误: c code: expression must be a modifiable lvalue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68538706/