Array type xxx is not assignable

百里無溟發表於2020-10-30

問題

在 world_type.h裡面的struct。species_t也是一個struct。

struct world_t
{
    unsigned int numSpecies;
    species_t species[MAXSPECIES];

    unsigned int numCreatures;
    creature_t creatures[MAXCREATURES];

    grid_t grid;
};

試圖 initialize 一個 world_t world 的 species 陣列,但是報錯 ”Array type ‘species_t [10]’ is not assignable“

world = {(unsigned)numSpecies};
    world.species = species;

原因

上面的程式碼中,我嘗試將species陣列賦值給world的species。但是在C++中,不能利用等式給陣列賦值。只能逐個給陣列的element賦值。

解決方案

world = {(unsigned)numSpecies};
    for(int i = 0; i < numSpecies; i++){
        world.species[i] = species[i];
    }

相關文章