// chapitre 3 copie structure.cpp : définit le point d'entrée pour l'application console.
//

#include "stdafx.h"

struct Rib
{
	char*banque;
	int guichet;
	int compte;
} ;

int main(int argc, char* argv[])
{
	Rib compte1,compte2;

	// alloue une seule chaîne de caractères
	char*banque=new char[50];
	strcpy(banque,"Banque A");

	// renseigne la première instance
	compte1.banque=banque;
	compte1.guichet=1234;
	compte1.compte=555666777;

	// copie les valeurs dans la seconde
	compte2=compte1;

	// affichage
	printf("compte1, %s %d %d\n",compte1.banque,compte1.guichet,compte1.compte);
	printf("compte2, %s %d %d\n",compte2.banque,compte2.guichet,compte2.compte);

	// apparamment, un modifie uniquement compte1
	printf("\nModification de compte1\n");
	strcpy(compte1.banque,"Banque B");	

	// vérification faite, les deux instances sur sur "Banque B"
	printf("compte1, %s %d %d\n",compte1.banque,compte1.guichet,compte1.compte);
	printf("compte2, %s %d %d\n",compte2.banque,compte2.guichet,compte2.compte);

	Rib *c1,*c2;
	c1=&compte1;
	c2=c1;
	c1->compte=333;
	printf("c2, %s %d %d\n",c2->banque,c2->guichet,c2->compte);

	c2=new Rib;
	memcpy(c2,c1,sizeof(Rib));
	c1->compte=222;
	printf("c2, %s %d %d\n",c2->banque,c2->guichet,c2->compte);
	
	return 0;
}

