Je ne vais pas aller plus loin en allouant de la mémoire pour les tableaux en C et principalement en C++. J'ai cherché des exemples mais il n'y en a pas pour moi, du moins il me semble.C (++) confusion de malloc
Donc, si j'ai un typedef ici comme ceci:
typedef struct
{
int x;
int y;
} Coordinate;
Coordinate* myList;
Et je un tableau du type Coordinate
aussi, comment puis-je ajouter des articles à dynamiquement. Tout ce que je sais, c'est que je dois utiliser malloc
et plus tard free
en C et new
/delete
en C++. (Malloc fait peur l'enfer hors de moi)
donc ce que je visais une fonction comme ceci:
void AddSomething (int x, int y)
{
// myList malloc/new magic here
}
Ma question est:
Comment fonctionne la ligne qui prévoit d'allouer nouvelle mémoire pour myList, puis ajoute le nouvel élément à ressembler? Pourriez-vous s'il vous plaît me montrer un de travail exemple pour C et C++?
Comment fonctionne exactement malloc en C? Il y a des choses à ce sujet que je ne connais pas bien (il y a une sorte de pointeur avant que la fonction, et la variable allouée est définie sur
malloc
de la valeur de retour)
Voulez-vous allouer dynamiquement un tableau dont la longueur est fixée après l'allocation ou souhaitez-vous utiliser un tableau de longueur variable (c'est-à-dire une liste liée ou similaire)? En outre, il existe un monde de différence entre la façon dont vous le feriez en C ou en C++. C'est-à-dire, avec C++, vous pouvez simplement utiliser 'std :: vector' qui fera le plus gros du travail pour vous. –
De plus, vous auriez idéalement un constructeur 'Coordinate :: Coordinate (int x, int y)' en C++. –
Le typedef ne sert à rien ici. Il est sans rapport avec la question, et est grossier obfuscatory. Vous n'avez pas besoin d'un typedef pour définir une structure. –