Comment résoudre l'erreur “expression doit être modifiable lvalue” en c++?

const int ADJ_MATRIX[VERTEX_NUM][VERTEX_NUM]={   
                                                {0,1,1,0,0,0,0,0},
                                                {1,0,0,1,1,0,0,0},
                                                {1,0,0,0,0,1,1,0},
                                                {0,1,0,0,0,0,0,1},
                                                {0,1,0,0,0,0,0,1},
                                                {0,0,1,0,0,0,1,0},
                                                {0,0,1,0,0,1,0,0},
                                                {0,0,0,1,1,0,0,0}
                                            };

typedef struct {
    int vertex;
    int matrix[VERTEX_NUM][VERTEX_NUM];
    int vNum;
    int eNum;
}Graph;

void buildGraph(Graph *graph){
    graph->vNum = VERTEX_NUM;
    graph->eNum = EDGE_NUM;
    graph->matrix = ADJ_MATRIX;
}

L'erreur dans cette phrase:

graph->matrix = ADJ_MATRIX;

Je suis novice en c++. s'il vous plaît dites-moi pourquoi ce problème et comment le résoudre?

Je veux attribuer ADJ_MATRIX de la matrice dans struct.

  • Un const qualificatif pourrait être suffisant si vous êtes sûr que vous ne modifiez pas la matrice. Sinon, utilisez memcpy.
  • Vous n'avez pas besoin typedef struct { ... } identifier; BS. Vous pouvez juste dire struct identifier { ... };
InformationsquelleAutor macemers | 2012-08-07