Voilà, j'ai ecrit ce code dans le but de m'exercer à la manipulation des tableaux et chaines de caractères, le but etant d'afficher une chaine : "BONJOUR MARC" à l'écran...
Seulement voilà deux problèmes se posent :
1) Ce programme affiche bien la chaine demandée mais lorsque l'on appuie sur une touche pour continuer, une erreur debug Visual C++ s'affiche :
Run-Time check failure #2- Stack around the variable 'tab2' was corrupted
2) Si je modifie tab1[]={'B','O','N','J','O','U','R','R','R','\0'}; par exemple, alors la chaine affichée n'est même plus correcte elle affiche qqch comme ca :
BONJOURRR |'||||BONJOURRAfficher une touche pour continuer...
(un truc comme ca tout parasité...)
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 #include "stdafx.h" #include <iostream> #include <stdio.h> int main(int argc, char* argv[]) { char tab1[]={'B','O','N','J','O','U','R','\0'}; char tab2[]={'M','A','R','C','\n','\0'}; char tab3[]={' '}; int tab1_size=sizeof(tab1),tab2_size=sizeof(tab2); for (int i=0;i<=(tab1_size+tab2_size);i++) { if (i<tab1_size) tab1[i]=='\0'?tab3[i]=' ':tab3[i]=tab1[i]; else tab3[i]=tab2[i-tab1_size]; } printf(tab3); system("pause"); return 0; }
Je ne comprend vraiment pas le problème, pouvez-vous m'aider ?
Merci d'avance !
PS : Ne me dites pas d'utiliser string.h ce n'est pas le but de mon 'exercice d'entrainement...'
Partager