Salut !
Je ne comprends pas pourquoi dans ce code, la fonction allouer ne fonctionne pas :
Le résultat obtenu à la console est :
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<stdio.h> #include<stdlib.h> void allouer(int* ptr){ ptr = malloc(10*sizeof(int)); } void ptrEstIlNull(int* ptr){ if(ptr==NULL) printf("tab est null\n"); else printf("tab n'est pas null\n"); } int main(){ int* tab; ptrEstIlNull(tab); allouer(tab); ptrEstIlNull(tab); tab = malloc(10*sizeof(int)); ptrEstIlNull(tab); return 0; }
Mais j'aurais imaginé que le résultat serait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3tab est null tab est null tab n'est pas null
La solution, c'est de modifier la fonction allouer pour qu'elle renvoie le pointeur. Mais la solution je m'en moque, je veux juste comprendre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 tab est null tab n'est pas null tab n'est pas null
Partager