Fonction malloc

ste -  
batmat Messages postés 1871 Statut Membre -
salut
je débute en c sous visual c. j'auraid de besoin d'aide car j'ai un pb. je n'arrive pas a faire une moy.je sais c'est pas terrible mais il faut bien essayer.
Donc si qqun pourrais jeter un petit coup d'oeil se serait cool.

#include "stdafx.h"
#include<stdio.h>
#include<conio.h>
#include<malloc.h>

int main(int argc, char* argv[])
{

int *adr_deb,i,imax=5;

adr_deb=(int*)malloc(5) ;
printf ("\n adresse du debut: %p \n",adr_deb) ;

/* saisie*/
printf(" saisie des 5 nombres : \n");
for (i=0;i<imax;i++)
{
printf ("entrer nb :") ;
scanf ("%d",adr_deb+i) ;

getch();
}

/*moyenne*/

int somme,moy;

somme=*adr_deb+*adr_deb+i;
moy=somme/5;
printf("la somme est: %d\n",somme);
printf("la moyenne est: %d",moy);

int *adr_moy;
adr_moy=(int*)malloc(20);
printf("\n adresse moy: %p\n",adr_deb);
getch();

return 0;
}
A voir également:

3 réponses

batmat Messages postés 1871 Statut Membre 114
 
1) >si qqun pourrais jeter un
Si j'aurais su j'aurais pas venu :-)

2) Tu pourrais ptete nous indiquer où se trouve ton pb, ou au moins les erreurs que tu obtiens... On n'a pas forcément le temps de lire en détail le code des autres

@++
Poster, poster encore et toujours :-)
0
batmat Messages postés 1871 Statut Membre 114
 
Et
3) La prochaine fois, utilise la balise code pour mettre du code

4) l'erreur (ou l'une d'elle) se situe surement dans le malloc
=> malloc prend en paramètre le nombre d'octets à allouer
Ici, je pense pouvoir dire que tu veux 5 int, or tu n'alloue que 5 octets au lieu des 5 emplacements int (en 32 bits, un int fait le plus souvent 4 octets => au lieu de 20)

ATTENTION n'écris surtout pas malloc(20), tu dois écrire :
adr_deb=(int*)malloc(5* sizeof(int)) ; 


C tout pour le moment

@++
Poster, poster encore et toujours :-)
0
batmat Messages postés 1871 Statut Membre 114
 
Encore autre chose, je vois que tu as fixé 5 nombres à saisir en dur ?!? alors pourquoi tu t'emmerde avec de l'allocation dynamique ???

@++
Poster, poster encore et toujours :-)
0