IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

produit matriciel de deux matrices dynamiques


Sujet :

C

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Student
    Inscrit en
    Novembre 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Student

    Informations forums :
    Inscription : Novembre 2018
    Messages : 35
    Points : 28
    Points
    28
    Par défaut produit matriciel de deux matrices dynamiques
    Bonjour les amis , je suis de retour avec un autre petit problème haha .
    on demande de saisir n le nombre de lignes de la matrice A puis m le nombres de ses colonnes .
    X une matrice unidimensionnelle de dimension m
    Y le produit de A et X doit avoir une dimension n .
    Après une première partie facile qui demande de calculer Y , La deuxième partie demande de saisir h et k . pour avoir une matrice A de dimension (n+h)*(m+k)
    puis X de dimension m+k
    et donc Y doit avoir n+h .
    je ne sais pas ou est mon erreur .. L’exécution du programme ne continue pas ..
    Voici le code :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    #include<stdio.h>
    #include <stdlib.h>
     
    main()
    {
    	int n,m ,i,j , h , k ;
    	do // -------------- forcage pour prendre m>1 et n> 1 
    	{
    		printf("saisir n le nombre de ligne puis m le nombre de colonnes de la matrice T : ");
    		scanf("%d%d",&n,&m);
    	}
    	while(n<1 || m<1 );
    	float **A , *X , *Y ;
    	A=malloc(n*sizeof(float*)); //-----------reservation de la memoire
    	if (A==NULL) exit(0) ; 
    	for(i=0;i<n;i++)
    	{
    		A[i]=malloc(m*sizeof(float)); //////////// ------------- .... 
    		if (A[i]==NULL) exit(0) ;
    	}
    	X=malloc(m*sizeof(float));
    	if (X==NULL) exit(0) ; 
    	Y=calloc(n,sizeof(float));
    	if (Y==NULL) exit(0) ;
    	for(i=0;i<n;i++)  // La saisie de la matrice A : 
    	{
    		for(j=0;j<m;j++)
    		{
    			printf("Saisir A[%d][%d] : \t",i,j);
    			scanf("%f",A[i]+j);	
    		} 	
    	}
    	 // la saisie de la matrice unidimensionnelle X 
    	for(i=0;i<m;i++)
    	{
    		printf("Saisir X[%d]: \t",i);
    		scanf("%f",X+i);	
    	}
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<m;j++)
    		{
    			*(Y+i)+=*(A[i]+j)**(X+j); // ou bien Y[i]=A[i][j]*X[j] ; 
    		}
    	} // affichage du résultat : 
    	printf("les valeurs de Y sont : ");
    	for(i=0;i<n;i++)
    	{
    		printf("%f \t",*(Y+i));
    	} // 2 eme manche 
    	// h et k sont de valeur ajoutées a n et m ; 
    	printf("Saisir h : \t ");
    	scanf("%d",&h);
    	printf("Saisir k : \t ");
    	scanf("%d",&k);
    	// pointeurs doubles temporaires : 
    	float **tempA , *tempX , *tempY ;
    	tempA=realloc(A,(n+h)*sizeof(float*));
    	if (tempA==NULL) exit(0) ;
    	 A=tempA ;
    	for(i=0;i<n;i++)
    	{
    		tempA[i]=realloc(A[i],(m+k)*sizeof(float));
    		if (tempA[i]==NULL) exit(0) ;
    		A[i]=tempA[i] ;
    	}
    	tempX=realloc(X,(m+k)*sizeof(float));
    	if (tempX==NULL) exit(0) ;
    	X=tempX ; 
    	tempY=realloc(Y,(n+h)*sizeof(float));
    	if (tempY==NULL) exit(0) ;
    	Y=tempY ; 
    	// saisie du reste de la matrice A 
    	for(i=0;i<n;i++)
    	{
    		for(j=m;j<m+k;j++)
    		{
    			printf("Saisir A[%d][%d]",i,j);
    			scanf("%f",A[i]+j);
    		}
    	}
    	for(i=n;i<n+h;i++)
    	{
    		for(j=0;j<m+k;j++)
    		{
    			printf("Saisir A[%d][%d]",i,j);
    			scanf("%f",A[i]+j);
    		}
    	}
    	// le reste de X 
    	for(i=m;i<m+k;i++)
    	{
    		printf("Saisir X[%d]",i);
    		scanf("%f",X+i);
    	}
    	// calcule du reste de Y
    	for(i=0;i<n;i++)
    	{
    		for(j=m;j<m+k;j++)
    		{
    			*(Y+i)+=*(A[i]+j)**(X+j) ;
    		}
    	}
    	for(i=n;i<n+h;i++)
    	{
    			*(Y+i)=0 ;
    	}
    	for(i=n;i<n+h;i++)
    	{
    		for(j=0;j<m+k;j++)
    		{
    			*(Y+i)+=*(A[i]+j)**(X+j) ;
    		}
    	} 
    	// nouvel affichage de la matrice A 
    	printf("les valeur de A  : \n ");
    	for(i=0;i<n+h;i++)
    	{
    		for(j=0;j<m+k;j++)
    		{
    			printf("%f",*(A[i]+j)) ;
    		}
    		printf("\n");
    	}
    	// affcihage de X 
    	printf("les valeurs de X sont : \b");
    	for(i=0;i<m+k;i++)
    	{
    		printf("%f \t",*(X+i));
    	}
    	// affichage de Y 
    	printf("les valeurs de Y sont : \b");
    	for(i=0;i<n+h;i++)
    	{
    		printf("%f \t",*(Y+i));
    	}
     
     
     
     
     
    	return 0 ;
    }

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par MouadCR7 Voir le message
    Bonjour les amis , je suis de retour avec un autre petit problème haha .
    haha !!!

    Citation Envoyé par MouadCR7 Voir le message
    je ne sais pas ou est mon erreur .. L’exécution du programme ne continue pas ..
    Regarde ce que j'écris en rouge dans ton code

    Citation Envoyé par MouadCR7 Voir le message
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    #include<stdio.h>
    #include <stdlib.h>
    
    main()
    {
    	int n,m ,i,j , h , k ;
    	do // -------------- forcage pour prendre m>1 et n> 1 
    	{
    		printf("saisir n le nombre de ligne puis m le nombre de colonnes de la matrice T : ");
    		scanf("%d%d",&n,&m);
    	}
    	while(n<1 || m<1 );		// Déjà tu travaillerais en unsigned...
    	float **A , *X , *Y ;
    	A=malloc(n*sizeof(float*)); //-----------reservation de la memoire
    	if (A==NULL) exit(0) ; 
    	for(i=0;i<n;i++)
    	{
    		A[i]=malloc(m*sizeof(float)); //////////// ------------- .... 
    		if (A[i]==NULL) exit(0) ;			// Dommage pour tout ce qui a été correctement alloué avant...
    	}
    	X=malloc(m*sizeof(float*));			// sizeof(float *) ? T'es sûr ???
    	if (X==NULL) exit(0) ; 
    	Y=calloc(n,sizeof(float*));			// Idem !!!
    	if (Y==NULL) exit(0) ;
    	for(i=0;i<n;i++)  // La saisie de la matrice A : 
    	{
    		for(j=0;j<m;j++)
    		{
    			printf("Saisir A[%d][%d] : \t",i,j);
    			scanf("%f",A[i]+j);			// Genre "je maitrise tellement les pointeurs..." => écris "&A[i][j]". Pour le compilo c'est pareil et pour le lecteur c'est plus simple.
    		} 	
    	}
    	 // la saisie de la matrice unidimensionnelle X 
    	for(i=0;i<m;i++)
    	{
    		printf("Saisir X[%d]: \t",i);
    		scanf("%f",X+i);				// Idem !!!
    	}
    	for(i=0;i<n;i++)
    	{
    		for(j=0;j<m;j++)
    		{
    			*(Y+i)+=*(A[i]+j)**(X+j); // ou bien Y[i]=A[i][j]*X[j] ; => exact et tellement plus simple à relire...
    		}
    	} // afichage du resultat : 
    	printf("les valeurs de Y sont : ");
    	for(i=0;i<n;i++)
    	{
    		printf("%f \t",*(Y+i));
    	} // 2 eme manche 
    	// h et k sont de valeur ajoutees a n et m ; 
    	printf("Saisir h : \t ");
    	scanf("%d",&h);
    	printf("Saisir k : \t ");
    	scanf("%d",&k);
    	// pointeurs doubles temporaires : 
    	float **tempA , *tempX , *tempY ;
    	tempA=realloc(A,(n+h)*sizeof(float*));
    	if (tempA==NULL) exit(0) ;
    	 A=tempA ;
    	// A partir de là je suis un peu perdu sur ce que tu cherches à faire. Mais perd cette habitude d'écrire *(M+k) au lieu de M[k] car tu ne gagnes absolument rien et tu rends ton code illisible.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Student
    Inscrit en
    Novembre 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Student

    Informations forums :
    Inscription : Novembre 2018
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    j'essayais de maîtriser la deuxième façon haha , l’exécution de la première manche a bien passe même si je n'ai pas bien écrit la fonction malloc .. en tous cas je l'a correcte , pour la deuxième manche les trois pointeurs ( temp ) pour ajouter des espaces mémoire , si on a pas d'espaces on va pas perdre nos donnes enregistres c'est tout .. le problème débute dans l'ajout des nouveaux case des nouveaux lignes de la matrice A ( regarde l'image puis les remarques du code pour comprendre mon probleme ) Nom : Sans titre.png
Affichages : 488
Taille : 14,9 Ko) ..
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    float **tempA , *tempX , *tempY ;
    	tempA=realloc(A,(n+h)*sizeof(float*));
    	if (tempA==NULL) exit(0) ;
    	 A=tempA ;
    	for(i=0;i<n;i++)
    	{
    		tempA[i]=realloc(A[i],(m+k)*sizeof(float));
    		if (tempA[i]==NULL) exit(0) ;
    		A[i]=tempA[i] ;
    	}
    	tempX=realloc(X,(m+k)*sizeof(float));
    	if (tempX==NULL) exit(0) ;
    	X=tempX ; 
    	tempY=realloc(Y,(n+h)*sizeof(float));
    	if (tempY==NULL) exit(0) ;
    	Y=tempY ; 
    	// saisie du reste de la matrice A 
    	for(i=0;i<n;i++)
    	{
    		for(j=m;j<m+k;j++)
    		{
    			printf("Saisir A[%d][%d]",i,j); //   la saisie ici est normale 
    			scanf("%f",A[i]+j);
    		}
    	}
    	for(i=n;i<n+h;i++)
    	{
    		for(j=0;j<m+k;j++)
    		{
    			printf("Saisir A[%d][%d]",i,j);  /*//le probleme est ici : quand je saisie ces nouveaux valeurs des nouveaux ligne ajouté le programme sort  */
    			scanf("%f",A[i]+j);
    		}
    	}
    	// le reste de X 
    	for(i=m;i<m+k;i++)
    	{
    		printf("Saisir X[%d]",i);
    		scanf("%f",X+i);
    	}
    	// calcule du reste de Y
    	for(i=0;i<n;i++)
    	{
    		for(j=m;j<m+k;j++)
    		{
    			*(Y+i)+=*(A[i]+j)**(X+j) ;
    		}
    	}
    	for(i=n;i<n+h;i++)
    	{
    			*(Y+i)=0 ;
    	}
    	for(i=n;i<n+h;i++)
    	{
    		for(j=0;j<m+k;j++)
    		{
    			*(Y+i)+=*(A[i]+j)**(X+j) ;
    		}
    	} 
    	// nouvel affichage de la matrice A 
    	printf("les valeur de A  : \n ");
    	for(i=0;i<n+h;i++)
    	{
    		for(j=0;j<m+k;j++)
    		{
    			printf("%f",*(A[i]+j)) ;
    		}
    		printf("\n");
    	}
    	// affcihage de X 
    	printf("les valeurs de X sont : \b");
    	for(i=0;i<m+k;i++)
    	{
    		printf("%f \t",*(X+i));
    	}
    	// affichage de Y 
    	printf("les valeurs de Y sont : \b");
    	for(i=0;i<n+h;i++)
    	{
    		printf("%f \t",*(Y+i));
    	}
     
     
     
     
     
    	return 0 ;
    }
    et merci beaucoup

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par MouadCR7 Voir le message
    j'essayais de maîtriser la deuxième façon
    Si tu veux. Ca te passera vite quand tu reviendras sur ton code 6 mois après et que tu devras relire 15 fois tes instructions en essayant de comprendre ce que t'as voulu écrire...

    Citation Envoyé par MouadCR7 Voir le message
    , l’exécution de la première manche a bien passe même si je n'ai pas bien écrit la fonction malloc ..
    Ne crois surtout pas ça. Ca "semble" bien se passer mais tu crées en fait un comportement indéterminé (un truc imprévisible donc qui peut bien se passer ou t'exploser à la tronche, ou bien se passer 100 fois et t'exploser la 101°). Un "float étoile" ce n'est pas un float. En C t'as pas droit à la moindre erreur car lui il ne vérifie rien et exécute ce que tu écris pourvu que ce soit syntaxiquement correct.

    Citation Envoyé par MouadCR7 Voir le message
    en tous cas je l'a correcte , pour la deuxième manche les trois pointeurs ( temp ) pour ajouter des espaces mémoire , si on a pas d'espaces on va pas perdre nos donnes enregistres c'est tout
    Oui j'ai compris en relisant mieux. Mais pourquoi utiliser tempA[i] pour réallouer ? Surtout que tempA[i] contient une copie de chaque A[i] (vu que tempA a réalloué A) donc en fait tu réalloues sur des trucs déjà existants. Pas grave en soi sauf le jour où tu voudras mieux gérer les échecs.

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    float **temp1, *temp2
    temp1=realloc(A, (n+h)*sizeof(float*));
    if (temp1 == NULL) exit(0) ;
    A=temp1;
    for(i=0; i<n; i++) {
    	temp2=realloc(A[i], (m+k)*sizeof(float));
    	if (temp2 == NULL) exit(0) ;
    	A[i]=temp2;
    }

    Citation Envoyé par MouadCR7 Voir le message
    .. le problème débute dans l'ajout des nouveaux case des nouveaux lignes de la matrice A ( regarde l'image puis les remarques du code pour comprendre mon probleme )
    Quand tu agrandis A, à quel moment est-ce que tu alloues les A[i] situés entre "n" et "n+h" ???

    Citation Envoyé par MouadCR7 Voir le message
    haha
    Ouais pareil, ouais.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Student
    Inscrit en
    Novembre 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Student

    Informations forums :
    Inscription : Novembre 2018
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    ouais c'est mieux d'utiliser seulement deux pointeurs comme tu as indique ..
    j'ai finalement trouvé mon fatal erreur haha ..
    je dois allouer des espaces pour mes nouveaux lignes ( entre n et n+h ) comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(i=n;i<n+h;i++)
    {
    	tempA[i]=malloc((m+k)*sizeof(float));
    	if (tempA[i]==NULL) exit(0) ;
    	A[i]=tempA[i] ;
    }
    Merci bien pour vos conseils

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par MouadCR7 Voir le message
    ouais c'est mieux d'utiliser seulement deux pointeurs comme tu as indique ..
    j'ai finalement trouvé mon fatal erreur haha ..
    je dois allouer des espaces pour mes nouveaux lignes ( entre n et n+h ) comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for(i=n;i<n+h;i++)
    {
    	tempA[i]=malloc((m+k)*sizeof(float));
    	if (tempA[i]==NULL) exit(0) ;
    	A[i]=tempA[i] ;
    }
    Merci bien pour vos conseils
    Je rebondis sur une remarque antérieure. Imaginons que l’allocation tempA[n-1]=NULL (cas extrême) toutes les allocations antérieures seront perdues !

    Bon, oui les systemes d’exploitation modernes sont capables de nettoyer tout ça mais quand même, c’est loin d’être propre. La fonction exit (); ne devrait pas s’utiliser en plein milieu du programme.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Student
    Inscrit en
    Novembre 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Student

    Informations forums :
    Inscription : Novembre 2018
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    Pas d'espace ça veut dire le programme ne peut pas continue ==> sortir xD
    beaucoup mieux d’exécuter un programme sans résultat finale peut etre avec un printf("pas d'espace pour l'allocation "); serait mieux :p

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par MouadCR7 Voir le message
    je dois allouer des espaces pour mes nouveaux lignes ( entre n et n+h ) comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(i=n;i<n+h;i++)
    {
    	tempA[i]=malloc((m+k)*sizeof(float));
    	if (tempA[i]==NULL) exit(0) ;
    	A[i]=tempA[i] ;
    }
    Pourquoi encore utiliser tempA[i] ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(i=n;i<n+h;i++) {
    	A[i]=malloc((m+k)*sizeof(float));
    	if (A[i]==NULL) exit(0) ;
    }
    Citation Envoyé par MouadCR7 Voir le message
    Pas d'espace ça veut dire le programme ne peut pas continue ==> sortir xD
    Oui mais en libérant ce qui a été correctement alloué avant. Si par exemple ça plante au malloc de A[100] alors ça a réussi de A[0] jusqu'à A[99] donc il faut libérer de A[0] jusqu'à A[99] puis libérer aussi A lui-même.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Student
    Inscrit en
    Novembre 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Student

    Informations forums :
    Inscription : Novembre 2018
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    ouais peut être avec utilisation de free ça reste meilleur ..
    tempA[i] juste pour s'assurer de ne pas perdre nos donnes

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 984
    Points
    30 984
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par MouadCR7 Voir le message
    tempA[i] juste pour s'assurer de ne pas perdre nos donnes
    Quelles données ??? C'est une zone "en plus" que tu es en train d'allouer et qui n'a pas encore reçu quoi que ce soit !!!

    Et même pour ne "pas perdre", t'as pas besoin de "n" valeurs temporaires puisque tu n'en utilises qu'une seule à la fois !!! Quand tu utilises tempA[1] alors tempA[0] n'est plus utilisé et donc ne sert plus à rien et donc il ne sert à rien d'avoir un tableau de temporaires => voir ma boucle où j'utilise juste un simple "temp2"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Student
    Inscrit en
    Novembre 2018
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Student

    Informations forums :
    Inscription : Novembre 2018
    Messages : 35
    Points : 28
    Points
    28
    Par défaut
    J'ai essaye d'imiter notre professeur de classe , mais comme vous avez dit ça na pas de sens ..

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo