Bonjour,
En C, j'essaye, dans une fonction, d'initialiser toutes les valeurs d'un tableau passé en argument :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // koch_fonctions.c void init_picture(uint32_t **picture, uint32_t size, uint32_t bg_color) { for (uint64_t i = 0; i < size * size; i++) { (*picture)[i] = bg_color; } } // test_fonctions.c int main() { uint32_t size = 200; const uint64_t PIC_AREA = size * size; uint32_t picture[PIC_AREA]; init_picture(&picture, size, 0); return EXIT_SUCCESS; } |
Seulement, j'obtiens l'avertissement suivant à la compilation, et une erreur de segmentation à l'exécution :
1 2 3 4 5 6 7 8 9 | $ clang -Wall -Wextra -lm test_fonctions.c koch_fonctions.c test_fonctions.c:18:16: warning: incompatible pointer types passing 'uint32_t (*)[PIC_SIZE]' to parameter of type 'uint32_t **' (aka 'unsigned int **') [-Wincompatible-pointer-types] init_picture(&picture, size, 0); ^~~~~~~~ ./koch_fonctions.h:50:37: note: passing argument to parameter 'picture' here extern void init_picture(uint32_t **picture, uint32_t size, uint32_t bg_color); ^ 1 warning generated. |
Merci.
+0
-0