1
I need an element position in a dynamic vector to be empty, so I can check if I can place an element inside it later. However, the compiler does not allow it. Follow my code:
MATRIZ_ESPARSA *criar_matriz(MATRIZ_ESPARSA *matriz, int nr_linhas, int nr_colunas){
matriz = (MATRIZ_ESPARSA *)malloc(sizeof(MATRIZ_ESPARSA));
(*matriz).linhas = (CELULA *)malloc(nr_linhas*sizeof(CELULA));
for(int i = 0; i < nr_linhas; i++){
(*matriz).linhas[i] = NULL;
}
(*matriz).colunas = (CELULA *)malloc(nr_colunas*sizeof(CELULA));
for(int i = 0; i < nr_colunas; i++){
(*matriz).colunas[i] = NULL;
}
return(matriz);
}
Checking whether there is any element:
if((*matriz).linhas[linha] == NULL && (*matriz).colunas[coluna] == NULL){
(*matriz).linhas[linha] = *novo;
(*matriz).linhas[linha].direita = NULL;
(*matriz).colunas[coluna] = *novo;
(*matriz).colunas[coluna].abaixo = NULL;
}
Which error?
– Jefferson Quesado
In Function ?crea_matrix': pdf4.c:98:29: error: incompatible types when assigning to type ?CELULA {aka struct CELULA}' from type ːvoid *' (*matrix). lines[i] = NULL;
– heavydsoul
MATRIZ_ESPARSA.linhas
is the typeCELULA**
?– Jefferson Quesado
no, it’s a CELLULA type *
– heavydsoul
You’re confusing the typing.
(CELULA*)[i]
is not a pointer, but yesCELULA
. Since it’s not a pointer, it can’t receiveNULL
– Jefferson Quesado