我有一个结构:
typedef struct mytime{
float band;
float elapsedTime;
} timeMs;
并为了分配内存:
timeMs *bands;
bands->band = (timeMs *) malloc(count * sizeof(timeMs));
bands->elapsedTime = (timeMs *) malloc(count * sizeof(timeMs));
我收到了:
类型" timeMs *"无法分配给类型的实体 "浮动"
变量"乐队"在设置其值之前使用
另外,里面:
for (unsigned int i = 0; i < count; i++)
{
bands->band[i] = 0.0;
bands->elapsedTime[i] = 0.0;
}
我收到了:
表达式必须具有指向对象类型的指针
更新:
我正在使用函数timeMs myfunction(...)
,我有一个表达式bands[i].band += myfunction(..)
我正在服用:
no operator "+=" matches these operands operand types are: float += timeMs
- UPDATE ---
我找到了最后一个问题。你必须这样做:
bands[i].band += myfunction(..).band
bands[i].elapsedTime += myfunction(..).elapsedTime
答案 0 :(得分:3)
您必须为结构分配内存,而不是为各个字段分配内存。
timeMs *bands = malloc(count * sizeof *bands);
对于第二个错误,请尝试:
bands[i].band = 0.0;