Здравствуйте, гость ( Вход | Регистрация )
Dec 18 2006, 18:30
Сообщение
#1
|
|
![]() Пользователь ![]() ![]() Группа: Posters Сообщений: 139 Регистрация: 4.7.2006 Из: http://mobithings.ru Пользователь №: 853 |
Каким образом выделить динамическую память массиву?
-------------------- |
|
|
|
![]() |
| Гость_Shweed_* |
Aug 30 2007, 18:32
Сообщение
#2
|
|
Guests |
Ваууу интересная тема.
Такс начнем: Для выделения небольших массивов (и даже бальших) юзать malloc, realloc и следовательно освобождение памяти выполнять через free. unsigned int size = 10; char *s = (char*) malloc (size); (Далее выполняем операции над строками!) ..... free (s); Минусы ... не вызывают конструкторы классов. Если выделять память в стиле new, то очень удобно по сути вызывают конструкторы классов и др. Минус ... нельзя перевыделить память .... (точнее довыделить). есть одно предложение через reallloc .... но это чревато утечками памяти. Ибо эти функции включают всебя разные API функции для работы с памятью. (malloc и realloc - AllocMemory, а NEW использует HeapAlloc). Так что вывод не пользоватсо! А для выделения огромнеших массивов памяти лучше разабатывать свой класс для работы с динамичской памятью .. на основе VirtualAlloc. (сырцов в инете пално.) Постом выше заметил такое .... unsigned int size = 10; char *s = (char*) malloc (size); s = "строка." ууууу неправильно! ))) ибо выделенная память потеряется. Так как s начнет указывать на другой по сути участок памяти. (будет утечка!) PS Аккуратно используйте динамику. Грамотно подчищайте все хвосты. |
|
|
|
Nom@d Выделение динамической памяти Dec 18 2006, 18:30
JoNy202 Цитата(Nom@d @ Dec 18 2006, 19:30) Каким ... Dec 18 2006, 20:20
Nom@d Врядли надо использовать библиотеку <alloc.h... Dec 18 2006, 20:27
GMaxim87 Прототипы ф-ий:
#include <stdlib.h>
void *m... Dec 23 2006, 11:02
mix Цитата(GMaxim87 @ Dec 23 2006, 12:02) cha... Aug 29 2007, 21:13
Amp memcpy, strcpy, strncpy нынче не в моде ) Aug 29 2007, 21:22
mix Цитата(Amp @ Aug 29 2007, 22:22) memcpy, ... Aug 30 2007, 07:35
mix Цитата(Shweed @ Aug 30 2007, 19:32) Для в... Aug 31 2007, 09:02
Amp Про smart pointers (в stl, boost) забыли.
mix, хоч... Aug 31 2007, 09:56
GerVin Цитата(Amp @ Aug 31 2007, 10:56) mix, хоч... Aug 31 2007, 11:25
mix Цитата(Amp @ Aug 31 2007, 10:56) Про smar... Aug 31 2007, 12:23
Shweed Слушайте ... ну чо вы как дети то? )))) Я полностю... Aug 31 2007, 11:50![]() ![]() |
|
Текстовая версия | Сейчас: 28th November 2025 - 18:03 |