Сізге C++ тілінде malloc қажет пе?
Сізге C++ тілінде malloc қажет пе?

Бейне: Сізге C++ тілінде malloc қажет пе?

Бейне: Сізге C++ тілінде malloc қажет пе?
Бейне: C++ қазақша | #14 - Массив 2024, Мамыр
Anonim

Сіз пайдалану malloc қашан сізге керек объектілерді бөлу үшін міндетті ағымдағы блоктың орындалу мерзімінен кейін бар (қайтару бойынша көшірме болар еді сондай-ақ қымбат болуы) немесе егер жадты бөлу керек осы стектің өлшемінен үлкенірек (яғни: 3 МБ жергілікті стек массиві жаман идея).

Сондай-ақ, сізге C++ тілінде malloc қажет пе?

Айырмашылық қарапайым: malloc жадты бөледі, ал new жадты бөледі ЖӘНЕ нысанның конструкторын шақырады сен үшін жад бөледі. Сондықтан, егер сен C-мен шектелген, сізге керек ешқашан қолданбаңыз malloc , әсіресе айналысқанда C++ нысандар.

Сондай-ақ, malloc-тың мәні неде? C тілінде кітапхана қызметі malloc үймедегі жад блогын бөлу үшін қолданылады. Бағдарлама жадтың осы блогына көрсеткіш арқылы қол жеткізеді malloc қайтарады. Жад қажет болмаған кезде, көрсеткіш бос орынға жіберіледі, ол жадты басқа мақсаттарда пайдалану үшін босатады.

Осылайша, C++ тілінде malloc бар ма?

Маллок () функциясы C++ бөледі а инициализацияланбаған жад блогы және қайтарулар а сілтегішті жарамсыз the бірінші байты the бөлінген жады блогы, егер the бөлу сәтті болады. Егер the өлшемі нөлге тең, the қайтарылатын мән тәуелді the жүзеге асыру the кітапхана. Ол болуы да, болмауы да мүмкін а нөлдік көрсеткіш.

Құрылымды қалай дұрыс орналастырасыз?

Қалағаныңыз үшін сізге екі керек malloc () с. құрылым Вектор *y = malloc (өлшемі *y); /* Көрсеткіні ескеріңіз */ y->x = calloc(10, sizeof *y->x); Бірінші жолда сіз Vector нысаны үшін жадты бөлесіз. malloc () бөлінген жадқа көрсеткішті қайтарады, сондықтан y Вектор көрсеткіші болуы керек.