Bonjour !
J'ai une fonction que j'ai codé en C. Elle marche bien, et tout ,et tout...
Mais je veux l'adapter pour QT, donc, je compile avec le compilateur C++
Et voila qu'il me sort une erreur :
FenRecherche.cpp: In member function `void FenRecherche::scanner(char*, long int*, long int*)':
FenRecherche.cpp:178: error: invalid conversion from `void*' to `stat*'
mingw32-make[1]: *** [release/FenRecherche.o] Error 1
mingw32-make[1]: Leaving directory `D:/fastSearch'
mingw32-make: *** [release] Error 2
voici la ligne en question (qui marche en C) :
struct stat *fichier = malloc(sizeof(struct stat));
Pourquoi cette erreur apparaît ? je ne vois aucune fonction de type void* !
Merci d'avance pour vos réponses
new et delete sont des opérateurs, des mots-clé du langage C++. Contrairement à malloc et free, ce ne sont pas des fonctions.
new et delete font en fait eux-mêmes appel aux fonctions malloc et free (on n'a pas réinventé la roue). Cependant, ils font aussi des tests et des initialisations supplémentaires, ce qui fait qu'on préfèrera toujours utiliser new et delete au lieu de malloc et free. Ils sont plus adaptés en C++.
C'est bon ça marche avec les new et les delete !
Merci !
Edit:
Quand j'applique ta technique, ledemonboiteux, j'ai ces erreurs...
FenRecherche.cpp: In member function `void FenRecherche::scanner(char*, long in
*, long int*)':
FenRecherche.cpp:183: error: `fichier' undeclared (first use this function)
FenRecherche.cpp:183: error: (Each undeclared identifier is reported only once
or each function it appears in.)
FenRecherche.cpp:183: error: `stat' is not a type
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
* Un wrapper C++ pour sqlite * Une alternative a boost units