Salutations !
Un peu honte de venir demander quelque chose d'aussi facile... Pas fait de C depuis un moment je voulais tester quelques trucs, et là, j'arrive un blocage. Voici le code :
Mon problème : il plante après "//erreur", mais pas tout le temps... Le programme s'arrête. J'ai peut-être identifié la bad ligne, mais j'en doute, car c'est pas tout le temps justement... J'ai pas d'idée et j'ai pas de pote sous le coude pour lui demander, alors je m'adresse à vous.
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
28
29
30 #include "stdio.h" #include "stdlib.h" #include "string.h" int main(void) { int *pta=NULL; char *ch2=NULL; int a; // the bad line ? char ch1[15]; strcpy(ch1 , "alo?"); printf("ch1 = %s \n taille de ch1 = %d \n\n",ch1,sizeof(ch1)); ch2 = "bonjour"; printf("ch2 = %s \n taille de ch2 = %d \n\n",ch2,sizeof(ch2)); a=48; printf("a = %d \n taille de a = %d \n\n",a,sizeof(a)); // erreur *pta=89; printf("pta = %d \n taille de pta = %d \n\n",*pta,sizeof(pta)); system("pause"); return 0; }
Et sinon, petite question sur la taille des pointeurs. De souvenir, il me semblait qu'un pointeur avait la taille de l'objet pointé. Ainsi, un pointeur sur int avait la taille d'un int, soit 4 (ce qui apparait dans mon exemple), et un pointeur sur char était donc de 1 (ce qui n'est pas le cas ici puis sizeof(ch2) me renvoit 4). J'ai faux alors ?
Partager