C++ da malloc kerakmi?
C++ da malloc kerakmi?

Video: C++ da malloc kerakmi?

Video: C++ da malloc kerakmi?
Video: Dynamic Memory Allocation using malloc() 2024, May
Anonim

Siz foydalanish malloc qachon senga kerak ob'ektlarni ajratish uchun kerak joriy blokning ishlash muddatidan keyin mavjud bo'ladi (bu erda nusxa ko'chirish bo'lardi qimmat bo'lsin) yoki agar xotirani ajratish kerak bu stekning o'lchamidan kattaroq (ya'ni: 3mb mahalliy stek massivi yomon fikr).

Bundan tashqari, C++ da malloc kerakmi?

Farqi oddiy: malloc xotirani ajratadi, new esa xotirani ajratadi VA ob'ekt konstruktorini chaqiradi siz uchun xotira ajratmoqda. Shunday ekan, agar siz C bilan cheklangan, sen … kerak hech qachon ishlatmang malloc , ayniqsa bilan muomala qilganda C++ ob'ektlar.

Bundan tashqari, kimdir so'rashi mumkin, mallocning maqsadi nima? C tilida kutubxona funktsiyasi malloc yig'ma xotira blokini ajratish uchun ishlatiladi. Dastur ushbu xotira blokiga ko'rsatgich orqali kiradi malloc qaytadi. Xotira endi kerak bo'lmaganda, ko'rsatgich bo'sh joyga uzatiladi, bu esa xotirani boshqa maqsadlarda ishlatish uchun ajratadi.

Shu tarzda, C++ da malloc bormi?

Malloc () funktsiyasi C++ ajratadi a ishga tushirilmagan xotira bloki va qaytariladi a ko'rsatgichni bekor qilish the birinchi bayti the ajratilgan xotira bloki agar the ajratish muvaffaqiyatli bo'ladi. Agar the hajmi nolga teng, the qaytarilgan qiymatga bog'liq the amalga oshirish the kutubxona. Bu bo'lishi mumkin yoki bo'lmasligi mumkin a null ko'rsatgich.

Strukturani qanday o'zgartirish mumkin?

Siz xohlagan narsa uchun sizga ikkita kerak malloc () s. tuzilishi Vektor *y = malloc (hajmi *y); /* Ko'rsatkichga e'tibor bering */ y->x = calloc(10, sizeof *y->x); Birinchi qatorda siz Vektor obyekti uchun xotira ajratasiz. malloc () ajratilgan xotiraga ko'rsatgichni qaytaradi, shuning uchun y Vektor ko'rsatkichi bo'lishi kerak.