begin process at 2012 05 28 07:24:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

ALLOCATION TABLEAU DEUX DIMENSIONS


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ALLOCATION TABLEAU DEUX DIMENSIONS

mardi 15 avril 2003 à 16:13:32 | ALLOCATION TABLEAU DEUX DIMENSIONS

tomsawyerbelgique

Bonjour ,

j'aimerais bien allouer dynamiquement de la mémoire pour un tableau a deux dimensions. Je demanderais le nombre de ligne et de colonne puis j'alloue. Mais j'y arrive pas a le faire quelqu'un peut m'aider. Merci


Ps: utilisation de la fonction calloc().

Merci
mercredi 16 avril 2003 à 13:19:50 | Re : ALLOCATION TABLEAU DEUX DIMENSIONS

payen

je te le fais en C++ (new et delete), pas en C:

Pour l'allocation memoire :
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;
}
}
}

Pour la liberation memoire :

if (image != NULL)
{
for (int i=0;i<nbl;i++)
delete[] image[i];
delete[] image;
image = NULL;
}

image est ton tableau de pointeurs (<type> ** image), nbl et nbc, je te laisse deviner ...

-------------------------------
Réponse au message :
-------------------------------

> Bonjour ,
>
> j'aimerais bien allouer dynamiquement de la mémoire pour un tableau a deux dimensions. Je demanderais le nombre de ligne et de colonne puis j'alloue. Mais j'y arrive pas a le faire quelqu'un peut m'aider. Merci
>
>
> Ps: utilisation de la fonction calloc().
>
> Merci
>
mercredi 16 avril 2003 à 23:02:35 | Re : ALLOCATION TABLEAU DEUX DIMENSIONS

CoreBreaker

3 mthodes:

1. allocation totale et acces linéaire:
int *t= (int *)calloc(nbLignes, nbColonnes*sizeof(**t));

acces à x-ième colonne de la y-ième ligne:
acces 1: t[(y * nbColonnes) + x]
ou
acces 2: t[(x * nbLignes) + y]
Attention: ne pas mélanger acces 1 et acces 2

2. allocation totale et acces indexé:
nbLines doit etre une constante
nbColonnes peut être une variable
int t[nbLignes][]= (int **)calloc(nbLignes, nbColonnes*sizeof(**t));

acces à x-ième colonne de la y-ième ligne:
t[y][x]

ou
nbColonnes doit etre une constante
nbLines peut être une variable
int t[nbColonnes][]= (int **)calloc(nbColonnes,nbLignes*sizeof(**t));

acces à x-ième colonne de la y-ième ligne:
t[x][y]

3. allocation successive et acces indexé:
nbLines doit etre une constante
nbColonnes peut être une variable
int *t[nbLignes]= (int **)calloc(nbLignes, sizeof(*t));
int i;

for(i= 0; i < nbLignes; i++)
t[i]= (int *)calloc(nbColonnes, sizeof(*t[i]))

acces à x-ième colonne de la y-ième ligne:
t[y][x]

ou
nbColonnes doit etre une constante
nbLines peut être une variable
int *t[nbColonnes]= (int **)calloc(nbColonnes, sizeof(*t));
int i;

for(i= 0; i < nbColonnes; i++)
t[i]= (int *)calloc(nbLignes, sizeof(*t[i]))

acces à x-ième colonne de la y-ième ligne:
t[x][y]

Core Breaker


-------------------------------
Réponse au message :
-------------------------------

> Bonjour ,
>
> j'aimerais bien allouer dynamiquement de la mémoire pour un tableau a deux dimensions. Je demanderais le nombre de ligne et de colonne puis j'alloue. Mais j'y arrive pas a le faire quelqu'un peut m'aider. Merci
>
>
> Ps: utilisation de la fonction calloc().
>
> Merci
>


Cette discussion est classée dans : tableau, allocation, dimensions


Répondre à ce message

Sujets en rapport avec ce message

allocation dynamique d'un tableau à trois dimensions [ par yo62 ] Bonjour,J'ai un bête pointeur dans une structure :int *Tableau;et je voudrais que ce pointeur pointe sur une allocation dynamique de type tableau mais Allocation dynamique d'un tableau a deux dimensions [ par Kurul1 ] Bonjour à tousJe voudrais allouer dynamiquement un tableau a deux dimensions d'entiersEst-t-il possible de le faire avec des new au lieu d'utiliser ma Allocation dynamique, tableau à 2 dimensions [ par seb013 ] SalutMon problème est simple (la solution je ne sais pas). Je veux faire une allocation dynamique pour un tableau à deux dimensions. Alors pour un ta tableau dynamique a 2 dimensions [ par CausPupus ] Je cherche à créer un tableau dynamiquement au cours de mon application (je ne connais pas ca taille avant d'éxecuter le programme). Donc je sais que Allocation dynamique en c++ [ par aliae ] bonjour ; Comment je peut allouer dynamiquement en c++ la memoire de d'un matrice  dynamique de taille x*y constitue d'un tableau de a poiteurs pointe allocation dynamique de tableau. [ par moumouteb ] Bonjours. J'ai vu qu'avec une allocation dynamique on peut créer un tableau d'une taille varible comme ceci :long nombreDAmis = 15;long* ag C - Tableau à deux dimensions, de pointeurs [ par lamoua76 ] Bonjour à tous !Je dois créer un tableau à deux dimensions de pointeurs (d'une structure que j'ai créé).Ma structure se nomme ainsi : pile.Mon tableau Allocation contigue [ par forest123 ] Bonjour tous le monde, En faite j'ai un code qui utilse un tableau de 4 dimesions (12*x*y*z), j'alloue ce tableau avec (un seul pointeur) un tableau p tableau à 3 dimensions [ par youssefmahdia ] bonjour,je veux savoir  comment allouer et libérer de mémoire à un tableau à trois dimensions.merci pour vos aides. Question de cours: tableau a deux dimensions [ par Quazar ] Bonjour Une simple question de cours. Je voudrais savoir a quoi correspond exactement cette déclaration: BOOL ttbTruc[5][5]; ttbTruc est il un BOOL*


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales