I ont le morceau de code suivant:type de matrice est de type élément incomplet lorsque définir de nouveaux types de données
#include <stdio.h>
int main(void) {
typedef int new_type[];
new_type Number[8];
return 0;
}
Le compilateur (GCC-4.9.2) montre erreur: type de réseau est de type élément incomplet.
J'ai quelques questions: 1.
est la définition de new_type
par typedef acceptée par la norme C90? Dans ce cas, new_type
est un type de données qui définit un tableau d'un nombre indéfini d'éléments ou un pointeur à un tableau de int
?
2.Dans nous gardons la ligne typedef int new_type[];
, comment peut-on définir une variable de type new_type
? Nous vous remercions de votre aide.
Quelle devrait être 'number'? Il a 8 éléments, mais les éléments sont des tableaux de taille indéterminée. Cela ne peut pas être alloué. – ikegami
Note: 'typedef' à portée locale n'est pas très utile Et dans quel but un tableau -typedef de taille indéterminée serait bon pour est très discutable. – Olaf
Pourquoi ne pas utiliser 'typedef int my_int; my_int a [8]; '? (avoir le 'typedef' à la portée du fichier). – Olaf