Bonjour,

Voila j'ai un petit probleme de warning avec mon gcc en mode parano à propos de l'utilisation des const pour les tableaux.

Supposons que j'ai un pseudo code qui ressemble à ca (pour des raisons de clarté, je n'ai mis aucun test d'erreur sur les malloc etc etc)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
#include<stdlib.h>
#include<string.h>
 
/* renvoie A=A+B */
void additionVect(double *const tabA, double const *const tabB, const size_t N)
{
   size_t i=0;
 
   for(i=0;i<N;i++)
       tabA[i]+=tabB[i];
}
 
void fonctionasouci(const size_t N)
{
    size_t i=0;
    double *const tab1 = malloc(N*sizeof(*tab1));
    double *const tab2 = malloc(N*sizeof(*tab2));
 
    memset(tab1,0,N*sizeof(*tab1));
    memset(tab2,3,N*sizeof(*tab1));
 
    additionVect(tab1,tab2,N);
 
    free(tab1);
    free(tab2);
}

La ou gcc rale, j'ai un warning comme quoi le type de pointeur utilisé est incompatible pour tab2, ce qui en un sens est logique vu que je lui transmet un pointeur de type double *const et qu'il attend un double const *const
Je me demandais donc quelle était la solution la plus propre pour résoudre ce probleme.
Ceci n'empeche pas mon code de tourner certes mais c'est pas pour ca que j'aime qu'il reste des warnings ^^

Je vous remercie d'avance,
Bonne journée

Edit : rajout des #include