Des moyens pour créer des dynamiques de la matrice en C?

C'est le seul moyen que je connaisse pour créer une matrice (tableau 2D) dans C, de manière dynamique, et la lecture de saisie de l'utilisateur dans ses éléments:

  • La création d'un pointeur sur un tableau de x pointeurs, où chaque pointeur
    représente une ligne de la matrice x est le nombre de lignes dans la matrice (sa hauteur).

  • Pointant chaque pointeur dans ce tableau un tableau avec y éléments,
    y est le nombre de colonnes dans la matrice (la largeur).


int main()
{

  int i, j, lines, columns, **intMatrix;

  printf("Type the matrix lines:\t");
  scanf("%d", &lines);
  printf("Type the matrix columns:\t");
  scanf("%d", &columns);

  intMatrix = (int **)malloc(lines * sizeof(int *)); 
  //pointer to an array of [lines] pointers

  for (i = 0; i < lines; ++i)
      intMatrix[i] = (int *)malloc(columns * sizeof(int)); 
      //pointer to a single array with [columns] integers

  for (i = 0; i < lines; ++i)
  {
      for (j = 0; j < columns; ++j)
      {
        printf("Type a number for <line: %d, column: %d>\t", i+1, j+1);
        scanf("%d", &intMatrix[i][j]);
      }
  }

Il existe d'autres moyens pour ce faire?

Avez-vous réellement besoin d'une autre manière?
Merci de lire parashift.com/c++-faq/multidim-arrays2.html pour les tableaux multidimensionnels.

OriginalL'auteur tempy | 2012-10-05