omble x [] peut être lu comme « x est un pointeur sur un tableau de char pour laquelle nous avons pas encore alloué la mémoire nécessaire ". Cependant vous devez spécifier une taille de contant (char x [6]) ou déclarer ceci comme un pointeur (char * x)
ax = "hello" ne fonctionne pas car ax ne pointe pas sur un espace de mémoire que vous pourriez ont alloué. De plus, le compilateur se plaint d'affecter quelque chose supposé être constant (la chaîne) à quelque chose qui pourrait être modifié par le programme.
Vous devez déclarer x constante ou copier la chaîne manuellement en utilisant une fonction telle que strcpy.
Par exemple:
struct A
{
char *x;
};
A a;
a.x = new char[6];
strcpy(a.x, "Hello");
Cela semble être C++. L'exemple fourni ne sera pas compilé en tant que C car un simple «A» n'est pas défini à ce stade («struct A» est défini). La balise 'c' a été enlevée. – pmg
@pmg L'exemple fourni ne sera pas compilé en tant que C++ non plus. 'test.cc:3:16: erreur: ISO C++ interdit le tableau de taille zéro 'x' – Cubbi
@pmg: le code ne compile-t-il pas la raison de la question? –