begin process at 2010 03 18 01:04:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Question sur le fonctionnement de la fonction strcat


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Question sur le fonctionnement de la fonction strcat

jeudi 19 janvier 2006 à 21:21:07 | Question sur le fonctionnement de la fonction strcat

n_o_u_n_o_u

Bonjour,

je ne comprends pas bien le fonctionnement de la fonction strcat.
Dans l'exemple ci-dessous, je n'obtiens qu'une seule sortie (le premier cout).
Si la ligne qui contient strcat est mise en commentaire, j'obtiens bien deux sorties.

Pourquoi ne peut-on pas réaliser ce genre de manipulation : est ce que la fonction strcat
aurait planté ?

Merci d'avance pour votre aide.

--------------------
#include <iostream>
#include <string.h>

using namespace std;

void main()
{
   char tableau[40+1];
   strcpy(tableau,"pour essai");
   cout << tableau << endl;
   strcat (tableau, tableau);  // <=
   cout << tableau << endl;
}
--------------------

jeudi 19 janvier 2006 à 22:16:17 | Re : Question sur le fonctionnement de la fonction strcat

Gendal67

lol c'est tout à fait normal. Regarde, quand tu copies de 'tableau' à 'tableau', tu commences par lire le premier caractère, puis tu le rajoute à la fin de 'tableau'...sauf que cela fera que le 'tableau' que tu ajoute sera lui même +grand (c'est la même variable)....il se produit une boucle infinie normalement...ou un truc analogue...

jeudi 19 janvier 2006 à 22:37:59 | Re : Question sur le fonctionnement de la fonction strcat

n_o_u_n_o_u

C'est un peu ce que je pensais...
Cependant si effectivement cela a planté, pourquoi est-ce que cela n'est pas sanctionné par un message d'erreur au moment de l'exécution du programme ?
jeudi 19 janvier 2006 à 22:42:31 | Re : Question sur le fonctionnement de la fonction strcat

Gendal67

Parce qu'une boucle infinie n'est pas détectable....tu peux t'en rendre compte si ton programme utilise presque les 100% de ton unité centrale ! (ou 50% si tu as l'hyperthreading)

vendredi 20 janvier 2006 à 11:50:24 | Re : Question sur le fonctionnement de la fonction strcat

Arnotic

Administrateur CodeS-SourceS
Réponse acceptée !
Pas de boucle infinie dans ce cas. Un simple buffer overflow.

@+
Arnotic,
Admin CS,
[ Lien ]
MVP Visual C++
vendredi 20 janvier 2006 à 12:49:01 | Re : Question sur le fonctionnement de la fonction strcat

Gendal67

Oui Arnotic, justement...j'y ai pensé...sauf que n_o_u_n_o_u n'a pas reporté un crash du processus...donc jme suis dit qu'il y a vait peut-etre plutôt une boucle ^^

vendredi 20 janvier 2006 à 19:50:24 | Re : Question sur le fonctionnement de la fonction strcat

n_o_u_n_o_u

Je ne pense pas à une boucle infinie car la charge du processeur n'a pratiquement pas variée.
Merci beaucoup pour votre aide à tous les deux.

A bientôt et bonne continuation !



Cette discussion est classée dans : fonction, tableau, strcat, cout, fonctionnement


Répondre à ce message

Sujets en rapport avec ce message

qsort fonctionnement? [ par deck_bsd ] Bonjour a tous,Voila, je voudrai trier ce tableau :char nt[][100] = {"un","trois","quatre","cinq","a","bb","b","axxxxxxxxxxxxxxxxxxx"};Avec la fonctio Une fonction qui renvoie un tableau [ par RLBDC ] Bonjour ,Je suis encore noob  en C, et je ne trouve pas comment on fait pour qu'une fonction retourne un tableau .En gros, je souhaiterais pouvoir fai Je cherche une fonction equivalente à foreach() ? [ par pyr0123 ] Bonjour,En PHP il existe une fonction foreach($tableau) tres pratique.exemple :$arr = array(1, 2, 3, 4);foreach ($arr as &$value){&n Triangle de Pascal [ par nadias ] Salut à tous,J'essais de traiter cette exercice mais je ne sais vraiment pas comment proceder.Pourriez-vous SVP m'aider.Je ne demande pas une solution Petit probleme avec un tableau [ par petitavion414 ] Salut à tous...J'ai un petit problème mais que je n'arrive pas à résoudre.Comment puis-ju passer en argument un tableau dans une fonction... Je m'expl strcat : fonction( char* buffer, int nb ); [ par wizard512 ] Bonsoir,Je souhaiterais savoir Si une fonction similaire a strcat() existerais,mais qui ajoute un entier ( int ) dans une TABLEAU de STRUCTURE [ par timy94 ] Bonjour Comment en C faire un tableau de pointeur pointant sur des structures.dans le but de trier ce tableau ex "tab.nom"  en modifiant les adresses passer un tableau dynamique en paramètre d'une fonction [ par Cascador ] Bonjour, Je développe un programme en dev C++. J'ai créer un tableau dynamique, et j'ai besoin de le passer en paramètre, mais il n'y a rien à faire caractére d'un fichier dans un tableau [ par ender08450 ] /* En gros, ce que je voudrais faire: L'utilisateur rentre le nom d'un fichier texte, et le programme que j'essai de fairedois rentrer tous les caraté Appel d'une fonction [ par t0ine ] Bonjour , je début en c++ et c'est la première fois que je crée une fonction et que je dois l'appeller mais ca ne foncctionne pas . Je ne comprend plu


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,229 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales