× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 [C] Pb utilisation de malloc (débutant)Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
siamos1
  Posté le 28/11/2011 @ 17:03 
Aller en bas de la page 
Petit astucien

Bonjour,

je débute en C et je souhaite réaliser un programme dans lequel j'utilise malloc. Fonction que je ne semble pas bien maitriser car lorsque je lance ce programme :

int dim;
double *tab1, *tab2, *tab3;
printf("Vous allez creer T1, qu'elle taille souhaitez vous ? ");
scanf("%d", &dim);
printf("Ecrivez chacun de ses elements : \n");
tab1=malloc(dim*sizeof(double));
tab2=malloc(dim*sizeof(double));
tab3=malloc(dim*sizeof(double));
creation_saisie_tableau(tab1, dim);
afficher_n_premieres_valeurs(tab1, dim);

il n'affiche que des 0 comme valeurs de mon tableau (alors que les foncions "creation_saisie_tableau" et "afficher_n_premieres_valeurs" fonctionnent très bien dans d'autres programmes).

J'ai pourtant chercher sur google et sur le fameux SDZ et je ne vois pas mon erreur.

Petite précision : je peux débugger et lancer le programme, mais lorsque je passe ma souris sur le signe égale entre "tab1" et "malloc(...)" j'ai le message :
"Error : impossible d'assigner une valeur de type "void *" à une entité de type "double *"
(Sous Microsoft Visual c++ 2010 Express)

Merci par avance

Publicité
siamos1
 Posté le 28/11/2011 à 17:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
  • Dans le doute que ça vienne de mes fonctions "creation_saisie_tableau" et "afficher_n_premieres_valeurs" je les mets quand même, si ça peut aider quelqu'un à m'aider :)

    void afficher_n_premieres_valeurs(double *tab1[], int n)
    {
    int i;
    for (i=0; i<n; i++)
    {
    printf("Valeur %d du tableau : %d \n", i+1, tab1[i]);
    }
    }



    double creation_saisie_tableau(double *tab, int dim )
    {
    int i;
    double valeur;
    for (i=0;i<dim; i++)
    {
    scanf("%lf",&valeur);
    tab[i]=valeur;
    }
    }
siamos1
 Posté le 28/11/2011 à 17:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'ai forcé la fonction malloc (ce qui a eu pour effet d'enlever le message lorsque je passe ma souris sur le signe égal)

mais l'erreur persiste toujours : les valeurs de mon tableau reste à 0

Mon programme contient d'autres choses inutiles ici, mais si je pouvais faire tourner le programme équivalent suivant ça résoudrait mon problème :

#include <math.h>
#include <stdio.h>
#include <stdlib.h>

void creation_saisie_tableau(double *tab1, int dim );
void afficher_n_premieres_valeurs(double *tab1, int n);

main()
{
int dim=2;
double *tab1;
tab1=(double*)malloc(dim*sizeof(double));
creation_saisie_tableau(tab1, dim);
afficher_n_premieres_valeurs(tab1, dim);
}

double creation_saisie_tableau(double *tab1, int dim )
{
int i;
double valeur;
for (i=0;i<dim; i++)
{
scanf("%lf",&valeur);
tab[i]=valeur;
}
}

void afficher_n_premieres_valeurs(double *tab1, int n)
{
int i;
for (i=0; i<n; i++)
{
printf("Valeur %d du tableau : %d \n", i+1, tab1[i]);
}
}

siamos1
 Posté le 28/11/2011 à 17:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Juste une erreur de déclaration de type de variable ? (%lf dans le printf et non %d)

J'ai honte, mais merci pour le gain de temps, j'aurai pu passer des heures à la chercher !

Merci beaucoup

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
79,95 €Clavier Gaming Logitech G513 Carbon Lightsync RVB à 79,95 €
Valable jusqu'au 25 Décembre

Materiel.net fait une promotion sur le clavier Gaming Logitech G513 Carbon Lightsync RVB qui passe à 79,95 € au lieu de 129 € ailleurs. Mélange parfait de performances, de technologies et d'une conception d'une qualité inégalée, le clavier G513 est un clavier gaming mécanique RVB équipé des switches mécaniques tactiles avancés Romer-G plébiscités par les professionnels d'eSports du monde entier. La coque en alliage aluminium robuste et légère apporte une rigidité et une apparence haut de gamme tout en lui conférant une forme fine semblable à une lame. Et pour davantage de confort, le Logitech G513 dispose d'un repose-poignets en mousse à mémoire de forme. Le Logitech G513 est doté d'un rétro-éclairage RVB complet d'environ 16.8 millions de couleurs avec un éclairage des touches personnalisable. De plus, grâce à la nouvelle technologie Lightsync, l'éclairage suit le rythme des jeux pour offrir l'expérience RVB la plus immersive qui soit.


> Voir l'offre
99,98 €Kit 2.1 THX Logitech Z623 à 99,98 €
Valable jusqu'au 01 Décembre

Amazon propose le Kit 2.1 THX Logitech Z623 à 99,98 € alors qu'on le trouve ailleurs autour de 140 €. Ce très bon kit d'enceintes supporte une puissance de 200W, est accompagné d'un caisson de basses en bois et est certifié THX qui vous garantit un rendu sonore idéal pour vos films, vos jeux, ou vos séances d'écoute musicale.


> Voir l'offre
26,99 €Clavier sans fil Microsoft All in One avec pad intégré à 26,99 €
Valable jusqu'au 30 Novembre

Amazon fait une promotion sur le clavier Microsoft All in One qui passe à 26,99 € au lieu de 39 €. Ce clavier sans fil (jusqu'à 9 mètres) est idéal pour piloter un ordinateur à distance puisqu'il intègre un touchpad pour contrôler également la souris. Léger, solide et résistant aux éclaboussures, il comporte de nombreuses touches multimédia personnalisables. Il est garanti 3 ans. La livraison est gratuite.


> Voir l'offre

Sujets relatifs
aide débutant sql
quel SGBD apprendre pour debutant ?
Utilisation de fichier .CSV en C++
Utilisation d'un fichier BIN
PowerBatch:pour débutant
probleme d'utilisation logiciel d'anglais EMME
Questions de debutant
Malloc et Free
Utilisation d'états infomaker avec Powerbuilder
besoin d'applications en vb2008 pour debutant
Plus de sujets relatifs à [C] Pb utilisation de malloc (débutant)
 > Tous les forums > Forum Autres langages