Bonjour à tous.
Me remettant au C avec une certaine difficulté, j'ai décidé de tenté d'écrire du code propre, c'est-à-dire, entre autre, d'utiliser les const.
De ce que j'ai compris, le const avec un passage par valeur marche très bien puisque le passage par valeur est similaire à une initialisation de l'élément en question.
On initialise la variable locale constante de la fonction avec la variable passée en paramètre (qui n'est pas nécessairement const, elle)
Mon problème est que, gérant des gros objets et des tableau, je ne fais pas de passage par valeur mais des passages par référence.
Du coup, j'arrive pas à homogénéiser mon code et j'ai des warning (voire des erreur) un peu partout de non correspondance de mes types.
Alors, avez vous une solution pour écrire une fonction qui initialise un tableau d'objets qui seront constants suite à cette initialisation ?
Et l'allocation de ce tableau ? Je peux la faire avant ou il faut que ce soit dans la fonction d'inialisation ?
Comment fonctionne exactement cette allocation ?
Code :
- tab = g_new(Objet const, n);
- tab = malloc(Objet const*, sizeof(Objet const)*n); //quasiéquivalent, si je ne m'abuse
|
Merci pour vos éclairages.