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
creation de plusieur tableau [ par foxwar ]
Bonjour, j'aimerai cree un programme ki permet de cree plusieur tableau du different taille et les afficher g ecirt ce programme mai je c pa ce k'il
sizeof pour determiner automatiquement la taille d'un tableau [ par Chatbour ]
Salut à tous et à toutes, je me remets a C++ après une longue pause, donc soyez indulgents ^^ je me demande pourquoi ce code donne un résultat faux
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
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Forum
ALGORITHMESALGORITHMES par whayoub
Cliquez pour lire la suite par whayoub
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|