Maison >développement back-end >C++ >Pourquoi C nécessite-t-il des tailles de tableau constantes : « L'expression doit avoir une valeur constante » ?

Pourquoi C nécessite-t-il des tailles de tableau constantes : « L'expression doit avoir une valeur constante » ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-11 08:51:15633parcourir

Why Does C   Require Constant Array Sizes:

La taille du tableau doit être constante : "L'expression doit avoir une valeur constante"

Lors de l'initialisation des tableaux en C, la taille du tableau doit être connue au moment de la compilation. Cela signifie que les valeurs des dimensions de ligne et de colonne du tableau doivent être des expressions constantes.

Considérons l'exemple suivant :

int row = 8;
int col = 8;
int [row][col]; // error: expression must have a constant value

Dans ce code, le tableau est déclaré sans spécifier de nom de la variable. De plus, les variables row et col ne sont pas des constantes, le compilateur ne peut donc pas déterminer la taille du tableau au moment de la compilation. Cela entraîne l'erreur "L'expression doit avoir une valeur constante".

Tableau alloué dynamiquement

Pour créer un tableau de taille dynamique, la mémoire doit être allouée sur le tas à l'aide nouvel opérateur. La mémoire allouée doit être libérée à l'aide de la suppression pour éviter les fuites de mémoire.

// Allocate the array
int** arr = new int*[row];
for (int i = 0; i < row; i++)
    arr[i] = new int[col];

// Use the array

// Deallocate the array
for (int i = 0; i < row; i++)
    delete[] arr[i];
delete[] arr;

Tableau de taille fixe

Pour les tableaux de taille fixe, les dimensions de ligne et de colonne doivent être déclaré comme const :

const int row = 8;
const int col = 8;
int arr[row][col];

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn