Bonjour à tous.
Je me tourne vers vous car j'ai une erreur de pointeur que je ne m'explique pas.
J'ai un tableau d'éléments dont je voudrais passer l'adresse à une fonction pour le modifier :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include <stdio.h> void f(int *ti[]) { printf("Hello %i", *ti[0]); //par exemple } int main() { int ti[] = {3, 14, 15}; f(&ti); return 0; }
Je pensais ce code valide, mais le compilateur me dit le contraire et à l’exécution j'ai droit à un segfault.
La compilation avec gcc -o cast -Wall -Wextra main.c me donne comme erreur :
Quelque-chose m’échappe, aussi je souhaiterais être éclairé de vos lumièresmain.c: In function ‘main’:
main.c:9:2: warning: passing argument 1 of ‘f’ from incompatible pointer type [enabled by default]
f(&ti);
^
main.c:3:6: note: expected ‘int **’ but argument is of type ‘int (*)[3]’
void f(int *ti[]) {
^
Partager