Allocation dynamique tableau 2 dimension
Fermé
imou222
-
Modifié par Chris 94 le 22/04/2014 à 02:00
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 22 avril 2014 à 15:52
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 22 avril 2014 à 15:52
A voir également:
- Allocation dynamique tableau 2 dimension
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Liste déroulante dynamique excel - Guide
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
22 avril 2014 à 15:52
22 avril 2014 à 15:52
int nombrObjPris;
Il vaut mieux éviter les variables globales.
De plus, la variable est initialisée à 0 et tu ne modifies jamais la valeur. Donc, la suite ne fonctionnera pas.
Pour info, les casts (int **), etc. devant les malloc sont inutiles en C. Après, tu peux les laisser si tu préfères.
Et enfin, n'oublie pas les free() aussi.
Cdlt,
Il vaut mieux éviter les variables globales.
De plus, la variable est initialisée à 0 et tu ne modifies jamais la valeur. Donc, la suite ne fonctionnera pas.
Pour info, les casts (int **), etc. devant les malloc sont inutiles en C. Après, tu peux les laisser si tu préfères.
Et enfin, n'oublie pas les free() aussi.
Cdlt,
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
22 avril 2014 à 11:52
22 avril 2014 à 11:52
Bonjour,
Comment est défini nombrObjPris ? et dim ?
void main ()
Le bon prototype est int main(void)
Et il ne faut pas oublier : return 0; en fin de main.
chk_malloc()
Fonction non standard. Pourquoi ne pas utiliser malloc() ?
<ital>printf("%d",nombrObjPris);<ital>
N'oublie pas de mettre un '\n' pour forcer l'affichage.
Cdlt,
Comment est défini nombrObjPris ? et dim ?
void main ()
Le bon prototype est int main(void)
Et il ne faut pas oublier : return 0; en fin de main.
chk_malloc()
Fonction non standard. Pourquoi ne pas utiliser malloc() ?
<ital>printf("%d",nombrObjPris);<ital>
N'oublie pas de mettre un '\n' pour forcer l'affichage.
Cdlt,
dim est lu d'un fichier et nombrObjPris est inconnue au debut
chk_malloc est une fonction qui déclare une erreur si l'allocation a échoué.
j'ai corrigé quelque erreur mais le code ne fonctionne toujours pas
chk_malloc est une fonction qui déclare une erreur si l'allocation a échoué.
j'ai corrigé quelque erreur mais le code ne fonctionne toujours pas
#include <stdio.h>
#include <stdlib.h>
#define DIM 3
int nombrObjPris;
typedef struct {
int **objPris;
}ind;
void* chk_malloc(size_t size)
/* Wrapper function for malloc(). Checks for failed allocations. */
{
void *return_value = malloc(size);
if(return_value == NULL)
printf("Selector: Out of memory.");
return (return_value);
}
ind* create_ind()
{
ind *p_ind; int i;
p_ind->objPris = (int ** ) chk_malloc (DIM * sizeof (int*));
for (i=0;i<DIM;i++)
{
p_ind->objPris[i]=(int *)chk_malloc(nombrObjPris* sizeof(int));
}
}
int main(void)
{
int i, j; ind *p_ind;
for(i=0;i<DIM;i++)
for(j=0;j<nombrObjPris;j++)
{p_ind->objPris[i][j]=i+j; }
printf("%d \n",p_ind->objPris[i][j]);
return 0;
}