Je dois identifier une structure globale (tableau), composée de 4 entiers. Le problème est que la taille de ce tableau struct n'est pas connue à l'avance.définir un pointeur struct struct dans C?
J'essaie de faire sth. comme ceci:
typedef struct
{
int value;
int MAXleft;
int MAXright;
int MAX;
} strnum;
int main()
{
int size;
scanf("%d", &size);
strnum numbers[size];
return 0;
}
J'ai entendu cela, il est possible de le faire par des pointeurs mais je ne sais pas comment faire.
en C vous ne lancez pas ce que malloc renvoie, il peut être émis si vous oubliez d'inclure stdlib.h puisque par défaut le type de retour s'il n'y a pas de prototype est int. En ne coulant pas, vous attraperiez cela. –
Je ne pense pas que la conversion de 'malloc' fasse une différence si vous allouez la bonne quantité de mémoire. – sgarizvi
Si quelqu'un écrit un programme avec un résultat de malloc sur un PC 32 bits et essaie de le compiler et de le lancer sur une machine avec un système 64 bits avec des pointeurs de 8 octets et des octets de 4 octets, il pourrait avoir un moment vraiment difficile à essayer de comprendre pourquoi ce dernier ne fonctionne pas. Le problème est que sans un prototype une valeur de retour sera tronquée à un int de 4 octets et causera très probablement une erreur de segmentation! –