J'utilise le cstdio (stdio.h)
pour lire et écrire des données à partir de fichiers binaires. Je dois utiliser cette bibliothèque en raison de l'ancien code et il doit être compatible avec Windows et Linux. J'ai un FILE* basefile_
que j'utilise pour lire dans les variables configLabelLength
et configLabel
, où configLabelLength
me dit combien de mémoire à allouer pour configLabel
.Puis-je lire une variable de longueur dynamique en utilisant fread sans pointeurs?
unsigned int configLabelLength; // 4 bytes
char* configLabel = 0; // Variable length
fread((char *) &configLabelLength, 1, sizeof configLabelLength, baseFile_);
configLabel = new char[configLabelLength];
fread(configLabel,1, configLabelLength,baseFile_);
delete [] configLabel; // Free memory allocated for char array
configLabel = 0; // Be sure the deallocated memory isn't used
Est-il possible de lire dans configLabel
sans l'aide d'un pointeur? Par exemple, existe-t-il une solution où je peux utiliser la bibliothèque de vecteurs C++ ou quelque chose où je n'ai pas à me soucier de la gestion de la mémoire du pointeur.
Y at-il une raison pour laquelle vous n'utilisez pas les flux de fichiers C++? – Cogwheel
@Cog: Tout en haut de la question. :) Et +1 pour chercher à utiliser le vecteur. – GManNickG
@Cogwheel Je suis obligé d'utiliser 'cstdio (stdio.h)' en raison du code existant. Je sais que ce n'est pas idéal. – Elpezmuerto