无法分配struct类型的值

时间:2014-08-12 08:52:50

标签: c

我有一个结构:

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

1 个答案:

答案 0 :(得分:3)

您必须为结构分配内存,而不是为各个字段分配内存。

timeMs *bands = malloc(count * sizeof *bands);

对于第二个错误,请尝试:

bands[i].band = 0.0;