Tableaux dynamiques à une ou deux dimensions

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 268 fois - Téléchargée 34 fois

Contenu du snippet

Cet exemple initialise des tableau dynamiques, les remplit, les lit puis n'oublie pas de libérer la mémoire allouée.

Source / Exemple :


#include <iostream>
#include <stdlib.h>
#define p_size_pInt 10
#define p_size1_tab 3
#define p_size2_tab 6

int main()
{
  /* 1 dimension **************************************************************/
  cout << "Tableau 1 dimantion" << endl;
  // Initalisation
  int* pInt = new int[p_size_pInt];

  // Rempissage
  for (int i=0;i<p_size_pInt;i++)
    pInt[i] = i;

  // Affichage
  for (int i=0;i<10;i++) cout << i << "=" << pInt[i] << "\t";
  cout << endl;

  // Retrait
  free(pInt);

  /* 2 dimensions *************************************************************/
  cout << "Tableau 2 dimantions" << endl;
  // Initalisation
  int** tab = new int*[p_size1_tab];
  for(int i=0;i<p_size1_tab;++i)
  {
    tab[i]=new int[p_size2_tab];
  }

  // Rempissage
  for (int i=0;i<p_size1_tab;i++)
    for (int j=0;j<p_size2_tab;j++)
      tab[i][j] = i*j;

  // Affichage
  for (int i=0;i<p_size1_tab;i++) {
    for (int j=0;j<p_size2_tab;j++) {
      cout << i << "," << j << "=" << tab[i][j] << "\t";
    }
    cout << endl;
  }
  cout << endl;

  // Retrait
  free(tab);

  // Quitter
  system("PAUSE");
  return 0;
}

Conclusion :


Les valeurs de se tableau sont de type int vous pouvez bien sur utiliser d'autres types comme long ou char.

J'espère que se code vous sera utile. N'hésitez pas à m'envoyer un message.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
16
Date d'inscription
dimanche 2 février 2003
Statut
Membre
Dernière intervention
3 juin 2008

// 2 dimensions
//Retrait

for(int i=0;i<p_size1_tab;++i)
{
delete tab[i];
}

delete tab;
Messages postés
855
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
1
juste une question:
peut-on utilsier la fonction delete[] tab sur tab et sur chaque element de tab pour detruire le tableau?
merci
Messages postés
41
Date d'inscription
dimanche 17 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2004

vive le C pour cela :)

void (*tab)[120];
(void *)tab = (void *)malloc(N*sizeof(*tab));

voici un exemple d'allocation pseudo-dynamique d'un tableau à 2 dimensions.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.