J'ai une struct que j'initialisés = NULL ici:erreur: opérandes invalides à l'expression binaire
void inicializa(tabelaHash **tabela, int tamanhoTabela) {
int i;
for(i = 0; i < tamanhoTabela; i++) {
inicializaArvore(&tabela[i]);
}
Mon problème est que, quand je teste si cela a fonctionné, avec « si (tabela [i] == NULL) ... "sur une fonction comme celle que j'ai mentionnée ou toute autre qui a besoin d'un" ** tabela ", ça fonctionne très bien, mais, quand je le fais sur ma main, ça me donne cette erreur:
main.c:129:16: error: invalid operands to binary expression ('tabelaHash'
(aka 'struct sbb') and 'void *')
if(tabela[k] == NULL)
~~~~~~~~~^~~~~
la ligne qui obtient cette erreur est juste:
for (k = 0; k < tamanhoTabela; k++) {
129->if(tabela[k] == NULL)
printf("funcionou");
}
tabela est une table de hachage des arbres binaires, tabelaHash est un SBB struct (SBB est une sorte d'arbre binaire défini comme suit:
struct sbb {
tipoItem reg; //that is the information it holds
struct sbb *esq; // left pointer
struct sbb *dir; // right pointer
int esquipo; // if it is a vertical or horizontal pointer to the left
int dirtipo; // if it is a vertical or horizontal pointer to the right
};
Je veux avoir un pointeur qui pointe vers la racine de chaque arbre sur le « tabela [i] », donc je malloc comme suit:
tabelaHash *tabela;
tabela = malloc(tamanhoTabela * sizeof(tabelaHash*));
Comment puis-je tester si tabela [i ] est toujours NULL sur mon principal?
edit: Je ne sais pas si cela aide, mais je viens de réaliser que je ne peux utiliser le "if (tabela [i] == NULL)" sur une fonction que si la fonction appelle un "tabelaHash **". Si je demande un "tabelaHash *", cela me fait la même erreur.
Vous avez donné plusieurs fragments de code disjoints qui ne présentent pas vraiment une image complète de votre problème, ni, d'ailleurs, de votre question. Nous préférons généralement voir un [mcve] démontrer le problème et servir de contexte pour «comment améliorer/réparer/étendre ceci». Vous obtiendrez de meilleures réponses de cette façon. –
Comment 'tabelaHash' est-il défini? – alk
En outre, ce '... sizeof (tabelaHash *)' est probablement probablement faux. Cela devrait être '... sizeof (tabelaHash)' ou mieux encore ... sizeof * tabela'. – alk