Har du brug for at malloc i C++?
Har du brug for at malloc i C++?

Video: Har du brug for at malloc i C++?

Video: Har du brug for at malloc i C++?
Video: speller 2024, Kan
Anonim

Du brug malloc hvornår du mangler at tildele objekter, der skal eksisterer ud over levetiden for udførelse af den aktuelle blok (hvor en kopi-ved-retur ville også være dyrt), eller hvis du skal allokere hukommelse større end størrelsen af den stak (dvs.: en 3mb lokal stak-array er en dårlig idé).

Har du også brug for at malloc i C++?

Forskellen er enkel: malloc allokerer hukommelse, mens ny allokerer hukommelse OG kalder objektets konstruktør du 'tildeler hukommelse til. Altså medmindre du er begrænset til C, du burde aldrig bruge malloc , især når man beskæftiger sig med C++ genstande.

Man kan også spørge, hvad er meningen med malloc? I C, biblioteksfunktionen malloc bruges til at allokere en blok hukommelse på heapen. Programmet får adgang til denne hukommelsesblok via en markør, der malloc vender tilbage. Når hukommelsen ikke længere er nødvendig, sendes markøren til fri, som deallokerer hukommelsen, så den kan bruges til andre formål.

Er der malloc i C++ på denne måde?

Mallocen () funktion i C++ tildeler - en blok af uinitialiseret hukommelse og returnerer - en tom pegepind til det første byte af det tildelt hukommelsesblok if det tildelingen lykkes. Hvis det størrelsen er nul, det returneret værdi afhænger af det gennemførelse af det bibliotek. Det kan eller kan ikke være - en nul pointer.

Hvordan mallocerer du en struktur?

For det, du vil have, skal du bruge to malloc () s. struktur Vektor *y = malloc (størrelse af *y); /* Bemærk markøren */ y->x = calloc(10, størrelse af *y->x); I den første linje allokerer du hukommelse til et vektorobjekt. malloc () returnerer en pointer til den allokerede hukommelse, så y skal være en vektor pointer.