Accueil > Forum > > > > C ANSI allocation dynamique de tableau
C ANSI allocation dynamique de tableau
mardi 27 mai 2003 à 00:56:57 |
C ANSI allocation dynamique de tableau

pedu
|
Ce petit pro beug en sortie, pourquoi et que faire ? #include <stdio.h> #include <stdlib.h> int (*pi)[1][1]; /* pointeur sur un tableau d'entiers */ void main(void) { unsigned int taille; /* taille du tableau (non connue à la compilation). */ int i, j; printf("Entrez la taille du tableau : "); scanf("%u",&taille); pi = (int (*)[1][1]) malloc(taille * sizeof(int)*1*1); for(i=0; i<(((int)taille)*1); i++) { for(j=0; j<(((int)taille)*1); j++) { *(pi[i][j]) = 0; } } for(i=0; i<(((int)taille)*1); i++) { for(j=0; j<(((int)taille)*1); j++) { printf("%d\t", *(pi[i][j])); } printf("\n"); } /* libere le pointeur */ free(pi); }
|
|
mardi 27 mai 2003 à 12:04:32 |
Re : C ANSI allocation dynamique de tableau

payen
|
tu cherches a faire quoi la???? une allocation dynamique d'un tabeau a 2 dimensions??? Si oui (c'est du C++, il te reste plus qu'a adapter) :
template <class T> T** CIM<T>::Alloue(int nbl,int nbc) { const type_info& typeInfo=typeid(T); const char* nomType=typeInfo.name();
cout << "Type de donnees : " << nomType << endl; getchar();
if (nbl == 0 || nbc ==0) return (T **)0;
image = new T * [nbl]; if (image == 0) { cout << "Echec lors de l'allocation memoire!!!" << endl; return (T **)0; } for (int i=0;i<nbl;i++) { image[i] = new T [nbc]; if (image[i] == 0) { for (int j=0;j<i;j++) { delete[] image[j]; delete[] image; cout << "Echec lors de l'allocation memoire!!!" << endl; return (T **)0; } } }
printf("Allocation memoire de %d octets reussie.\n",nbl*nbc*sizeof(T));
return image; }
template <class T> void CIM<T>::Desalloue(int nbl) { if (image != NULL) { for (int i=0;i<nbl;i++) delete[] image[i]; delete[] image; image = NULL;
cout << "Desallocation de " << nbl*NBC*sizeof(T) << " octets.\n" << endl; } else cout << "Memoire deja desallouee!!!" << endl; }
C'est des methodes d'une classe template, faut pas que ca t'effraie : tu t'interesses aux new et aux delete (remplaces par malloc et delete ...)
------------------------------- Réponse au message : -------------------------------
> Ce petit pro beug en sortie, pourquoi et que faire ? > > > #include <stdio.h> > #include <stdlib.h> > > int (*pi)[1][1]; /* pointeur sur un tableau d'entiers */ > > void main(void) > { > unsigned int taille; /* taille du tableau (non connue > à la compilation). */ > int i, j; > printf("Entrez la taille du tableau : "); > scanf("%u",&taille); > pi = (int (*)[1][1]) malloc(taille * sizeof(int)*1*1); > > for(i=0; i<(((int)taille)*1); i++) > { > for(j=0; j<(((int)taille)*1); j++) > { > *(pi[i][j]) = 0; > } > } > > for(i=0; i<(((int)taille)*1); i++) > { > for(j=0; j<(((int)taille)*1); j++) > { > printf("%d\t", *(pi[i][j])); > } > printf("\n"); > } > > /* libere le pointeur */ > free(pi); > } >
|
|
mardi 27 mai 2003 à 12:05:41 |
Re : C ANSI allocation dynamique de tableau

payen
|
faut a voir declare un **image quelquepart!!!
------------------------------- Réponse au message : -------------------------------
> tu cherches a faire quoi la???? une allocation dynamique d'un tabeau a 2 dimensions??? Si oui (c'est du C++, il te reste plus qu'a adapter) : > > template <class T> T** CIM<T>::Alloue(int nbl,int nbc) > { > const type_info& typeInfo=typeid(T); > const char* nomType=typeInfo.name(); > > cout << "Type de donnees : " << nomType << endl; > getchar(); > > if (nbl == 0 || nbc ==0) > return (T **)0; > > image = new T * [nbl]; > if (image == 0) > { > cout << "Echec lors de l'allocation memoire!!!" << endl; > return (T **)0; > } > for (int i=0;i<nbl;i++) > { > image[i] = new T [nbc]; > if (image[i] == 0) > { > for (int j=0;j<i;j++) > { > delete[] image[j]; > delete[] image; > cout << "Echec lors de l'allocation memoire!!!" << endl; > return (T **)0; > } > } > } > > printf("Allocation memoire de %d octets reussie.\n",nbl*nbc*sizeof(T)); > > return image; > } > > template <class T> void CIM<T>::Desalloue(int nbl) > { > if (image != NULL) > { > for (int i=0;i<nbl;i++) > delete[] image[i]; > delete[] image; > image = NULL; > > cout << "Desallocation de " << nbl*NBC*sizeof(T) << " octets.\n" << endl; > } > else > cout << "Memoire deja desallouee!!!" << endl; > } > > C'est des methodes d'une classe template, faut pas que ca t'effraie : tu t'interesses aux new et aux delete (remplaces par malloc et delete ...) > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > Ce petit pro beug en sortie, pourquoi et que faire ? > > > > > > #include <stdio.h> > > #include <stdlib.h> > > > > int (*pi)[1][1]; /* pointeur sur un tableau d'entiers */ > > > > void main(void) > > { > > unsigned int taille; /* taille du tableau (non connue > > à la compilation). */ > > int i, j; > > printf("Entrez la taille du tableau : "); > > scanf("%u",&taille); > > pi = (int (*)[1][1]) malloc(taille * sizeof(int)*1*1); > > > > for(i=0; i<(((int)taille)*1); i++) > > { > > for(j=0; j<(((int)taille)*1); j++) > > { > > *(pi[i][j]) = 0; > > } > > } > > > > for(i=0; i<(((int)taille)*1); i++) > > { > > for(j=0; j<(((int)taille)*1); j++) > > { > > printf("%d\t", *(pi[i][j])); > > } > > printf("\n"); > > } > > > > /* libere le pointeur */ > > free(pi); > > } > > >
|
|
mercredi 28 mai 2003 à 08:49:47 |
Re : C ANSI allocation dynamique de tableau

nEUrOne
|
pi = (int ***)malloc(taille * sizeof(*pi));
|
|
mercredi 28 mai 2003 à 09:48:04 |
Re : C ANSI allocation dynamique de tableau

payen
|
ca c'est vraiment n'importe quoi nEUrOne!
------------------------------- Réponse au message : -------------------------------
> pi = (int ***)malloc(taille * sizeof(*pi));
|
|
Cette discussion est classée dans : taille, int, tableau, for, pi
Répondre à ce message
Sujets en rapport avec ce message
Tableau [ par druggedsephiroth ]
Je comprends vraiment pas, j'ai un tableau:#define taille 8int cache[taille][taille];ensuite au début du soft, dans la procédure main je mets ca: for
Help Me [ par manta7 ]
Bonjour, j'aimerais coder un fonction qui prend en paramètre un tableau de nombres entiers, et qui recherche, dans ce tableau, la plus grande différen
taille tableau [ par MiTcH37 ]
J'aimerai savoir comment connaitre la taile d'un tableau, pour ne pas les envoyer comme argument dans une fonction.ex : void fct(int trier[], int tail
Création de 2 tableaux dynamik à 2D [ par flopflopp ]
Bonjour, je voudrais soumettre un petit problème en C++, j'ai une simple fonction qui crée un tableau dynamique à 2 dimensions, le rempli avec des 1 e
Retourner tableau 2d [ par ZogStriP ]
J'ai une fonction qui retoure un tableau 2 dimension mais ça ne marche pas :int MultiMatrice(int Matrice1[2][2], int Matrice2[2][2]){ int MatriceRe
Problem Affichage de mon Tableau [ par Orezza ]
salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le
prob de tableau lié aux metaballs [ par jfk20004 ]
quelqu'un peut il m'expliquer ce que font exactement ici les tableaux . j'aimerais savoir si ce sont les tableaux qui passent des valeurs ou si on pas
Taille d'un pointeur ou d'un tableau ( très bizarre ) [ par thristam ]
Bonjour à tous,Quand je veux connaitre la taille d'un tableau , je fais :int i[10];coutPas de problème Par contre , si je fais la même chose avec un p
tableau [ par imanedaoudi ]
Salut,Je veux récuperer le tableaux triée sans faire return, avec ce programme je recupere le tableau non trier ,comment faire pour recuperer le tab t
Pb de tableau et de listbox [ par sran_isback ]
Bonjour ! j'ai un ptit probléme concernant un tableau a afficher dans une listbox! j'aimerais bien qu'il m'affiche les nombres de 1 à cents mais toute
Livres en rapport
|
Derniers Blogs
PB LORS DE L'INSTALLATION SHAREPOINT 2010.PB LORS DE L'INSTALLATION SHAREPOINT 2010. par Patrick Guimonet
Lors de l'installation de SharePoint 2010, j'ai rencontré un problème de plantage à l'étape 5 du configuration Wizard. Ca se termine sur cet écran : Et en analysant le fichier de journalisation, on remarque vers la fin des 15000 et quelques lign...
Cliquez pour lire la suite de l'article par Patrick Guimonet [WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (2/2)[WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (2/2) par JeremyJeanson
Après mon précédent article qui attaque les contraintes par la fasse Nord de l'Everest. passons à la seconde possibilité offerte par WF4 pour valider une activité : la metadata . Je vous en ai déjà toucher un ou deux mots. La metadata dans WF4 est un élém...
Cliquez pour lire la suite de l'article par JeremyJeanson [WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (1/2)[WF4] AJOUTER DES CONTRAINTES à UNE ACTIVITé (1/2) par JeremyJeanson
De WF3 à WF4 pas mal de choses on été changées pour faciliter la vie des développeurs, mais certain points peuvent sembler obscures. comme les contraintes. Pour vous guider, je me lance dans une série de deux articles. Ils présenterons deux approches poss...
Cliquez pour lire la suite de l'article par JeremyJeanson [ASP.NET] NE PAS SE FAIRE AVOIR PAR IHTTPMODULE ET SA MéTHODE INIT()[ASP.NET] NE PAS SE FAIRE AVOIR PAR IHTTPMODULE ET SA MéTHODE INIT() par tja
Beaucoup de développeurs pensent que lorsqu'on créé et enregistre un IHttpModule, il n'en existe qu'une seule instance et la méthode Init() sera appelée qu'une fois.
C'est faux
Cela peut vraiment créer des bugs subtils dont en ne se rend pas compte ...
Cliquez pour lire la suite de l'article par tja [MSTD10] SHAREPOINT 2010 ET TEAM FOUNDATION SERVER[MSTD10] SHAREPOINT 2010 ET TEAM FOUNDATION SERVER par phil
Un post rapide pour vous informer de la disponibilité de la vidéo de ma présentation sur SharePoint 2010 & Team Foundation Server. http://www.microsoft.com/france/vision/mstechdays10/Webcast.aspx?EID=20215d48-02e3-4d43-8c36-e53505c3b316 Dans la ...
Cliquez pour lire la suite de l'article par phil
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|