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 :

Probleme allocation dynamique


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2022
    Messages : 7
    Points : 0
    Points
    0
    Par défaut Probleme allocation dynamique
    Bonjour,
    je ne reussis pas du tout cet exo portant sur les allocations dynamiques, si quelqu'un pourrait m'aider ce serait sympa car je suis completement perdu...
    C'est en particulier sur la premiere question, comment reussir a afficher ce tableau dans l autre sens ?
    Nom : IMG_7325.jpg
Affichages : 171
Taille : 25,2 Ko

  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 721
    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 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Ca t'aurait fatigué les doigts de recopier la question? Ou au minimum nous mettre une image qu'on puisse lire sans se faire saigner les yeux? (en plus j'ai un écran 24 pouces... j'imagine même pas comment ça doit ressortir sur un portable). Ca en dit long sur ta motivation dans le travail..
    Citation Envoyé par shadow0000 Voir le message
    comment reussir a afficher ce tableau dans l autre sens ?
    On te demande pas de l'afficher dans l'autre sens mais d'en créer un second copie du premier, puis de le remplir avec les valeurs du premier.
    Donc pour le créer ça se fait via malloc() et pour le remplir dans l'autre sens, on part de la fin et on remonte vers le début (ce qui ne devrait pas poser de souci puisque tu as son nombre d'éléments...)

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 668
    Points : 10 669
    Points
    10 669
    Par défaut
    1. Écrire une fonction miroir qui étant donné un tableau de flottants et sa taille, renvoie un nouveau tableau qui correspond au tableau du paramètre lu de la droite à la gauche.

    Par exemple, si tab est le tableau {1.0, 6.5, 18.25, 0.0, 7.0}, alors miroir(tab, 5) renvoie {7.0, 0.0, 18.25, 6.5, 1.0}


    2. Écrire une fonction recopie_tableau, prenant trois paramètres : deux tableaux de floattants et une taille qui sera commune aux 2 tableaux, qui recoperia les éléments du second tableau dans le premier.

    Par exemple, si tab1 vaut {1.0, 6.5, 18.25, 0.0, 7.0} et tab2 vaut {4.5, 2.0, 2.0, 0.75, 2.25} alors recopie_tableau(tab1, tab2, 5) changera tab1 en {4.5, 2.0, 2.0, 0.75, 2.25} (tab2 restera inchangé)
    Pour la troisième question voir ce fil de discussion : Algorithmique D3 en licence (question a)

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2022
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    Merci pour les reponses (je tacherai de recopier le code la prochaine fois),
    je débute et justement je vois pas comment redonner les valeurs au deuxieme tableau après avoir ecrit quelque chose comme:

    int miroir(float* tab,int taille)
    {
    int i,j;

    float*tab2[]={}

    for(i=taille, j=0; i>0; i--,j++)

    car si je mets tab2

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 668
    Points : 10 669
    Points
    10 669
    Par défaut
    Citation Envoyé par shadow0000 Voir le message
    int miroir(float* tab,int taille)
    {
    int i,j;

    float*tab2[]={}

    for(i=taille, j=0; i>0; i--,j++)

    car si je mets tab2
    Donc tu ne comprends pas le C

    Tu fais 1 tableau de zéro case ... pour mettre X valeurs
    Tu fais 1 tableau de pointeurs ... pour mettre des flottants
    Tu vas retourner 1 variable locale (tab2) ... spoiler : plantage

    Par contre utiliser 1 variable locale temporaire pour échanger 2 cases, tu n'y penses pas (spoiler : cela s'appelle un algorithme sur-place, "in-place algorithm" lien wikipedia en anglais)
    Édit : effectivement il faut retourner 1 tableau

    Et soit dit en passant, tu ne peux pas vérifier si la taille de tableau et inférieure ou égale à celle réelle de ton tableau, pour ne pas déborder. Ton professeur doit s'en fichtre

  6. #6
    Membre expérimenté Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 652
    Points : 1 669
    Points
    1 669
    Par défaut
    Hello,

    Déjà la première question me parait bizarre: écrire une fonction qui renvoie un tableau (etc). Un fonction en C ne peut pas renvoyer un tableau, juste un pointeur. Donc,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int *mirror(int from[],int size) {
    	int to[size];
    	....
     
    	return(to);
    }
    ne peut pas fonctionner, le tableau to[] étant local à la fonction et n'existant pas en-dehors de celle-ci.

    Il faut écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdlib.h>
     
    int *mirror(int from[],int size) {
    	int *to=malloc(size*sizeof(int));
    	....
     
    	return(to);
    }
    ou encore
    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
    #include <stdlib.h>
     
    void mirror(int from[],int to[],int size) {
    	....
    }
     
    int main(void) {
    	int from[]={1,2,3,4,5};
    	int to[5];
     
    	mirror(from,to,5);
    	....
     
     
    	return(0);
    }

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2022
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2022
    Messages : 7
    Points : 0
    Points
    0
    Par défaut
    Merci pour votre aide

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

Discussions similaires

  1. probleme allocation dynamique
    Par mos98 dans le forum Débuter
    Réponses: 12
    Dernier message: 09/12/2010, 18h53
  2. probleme allocation dynamique de mémoire
    Par totoscill dans le forum C
    Réponses: 18
    Dernier message: 28/02/2008, 16h44
  3. Probleme d'allocation dynamique
    Par Xav987 dans le forum C++
    Réponses: 6
    Dernier message: 04/03/2007, 13h43
  4. probleme allocation dynamique
    Par ciberju dans le forum C
    Réponses: 2
    Dernier message: 28/08/2006, 09h40
  5. probleme d'allocation dynamique
    Par vince3320 dans le forum C
    Réponses: 10
    Dernier message: 22/04/2004, 16h27

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