Adakah anda perlu malloc dalam C++?
Adakah anda perlu malloc dalam C++?

Video: Adakah anda perlu malloc dalam C++?

Video: Adakah anda perlu malloc dalam C++?
Video: Rust против C++ — что лучше? | Сравнение производительности Rust и C++ | #Шорты | Упрощенное обучение 2024, Mungkin
Anonim

awak guna malloc bila awak perlu untuk memperuntukkan objek yang mesti wujud di luar jangka hayat pelaksanaan blok semasa (di mana salinan atas pemulangan akan menjadi mahal juga), atau jika anda perlu memperuntukkan memori lebih besar daripada saiz tindanan itu (iaitu: tatasusunan tindanan tempatan 3mb adalah idea yang tidak baik).

Juga, adakah anda perlu malloc dalam C++?

Perbezaannya adalah mudah: malloc memperuntukkan memori, manakala baru memperuntukkan memori DAN memanggil pembina objek awak sedang memperuntukkan ingatan untuk. Jadi, melainkan awak terhad kepada C, kamu patut tak pernah guna malloc , terutamanya apabila berurusan dengan C++ objek.

Seseorang juga mungkin bertanya, apa gunanya malloc? Dalam C, fungsi perpustakaan malloc digunakan untuk memperuntukkan blok memori pada timbunan. Program ini mengakses blok memori ini melalui penunjuk yang malloc pulangan. Apabila ingatan tidak lagi diperlukan, penuding dihantar kepada membebaskan yang mendelokasikan memori supaya ia boleh digunakan untuk tujuan lain.

Dengan cara ini, adakah terdapat malloc dalam C++?

malloc () berfungsi dalam C++ memperuntukkan a blok memori yang tidak dimulakan dan pulangan a kosongkan penunjuk ke yang bait pertama daripada yang blok memori yang diperuntukkan jika yang peruntukan berjaya. Jika yang saiz sifar, yang nilai yang dikembalikan bergantung pada yang pelaksanaan yang perpustakaan. Ia boleh atau tidak a penunjuk nol.

Bagaimanakah anda memallokkan struktur?

Untuk apa yang anda mahu anda perlukan dua malloc () s. struct Vektor *y = malloc (saiz *y); /* Perhatikan penunjuk */ y->x = calloc(10, sizeof *y->x); Dalam baris pertama, anda memperuntukkan memori untuk objek Vektor. malloc () mengembalikan penunjuk ke memori yang diperuntukkan, jadi y mestilah penunjuk Vektor.