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
Libérer: 2024-12-11 08:51:15
original
675 Les gens l'ont consulté

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
Copier après la connexion

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;
Copier après la connexion

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];
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal