IPB

Здравствуйте, гость ( Вход | Регистрация )

> Выделение динамической памяти, на С++
Nom@d
сообщение Dec 18 2006, 18:30
Сообщение #1


Пользователь
**

Группа: Posters
Сообщений: 139
Регистрация: 4.7.2006
Из: http://mobithings.ru
Пользователь №: 853



Каким образом выделить динамическую память массиву?


--------------------
Вернуться к началу страницы
 
+Цитировать сообщение
 
Создать новую тему
Ответов
Nom@d
сообщение Dec 18 2006, 20:27
Сообщение #2


Пользователь
**

Группа: Posters
Сообщений: 139
Регистрация: 4.7.2006
Из: http://mobithings.ru
Пользователь №: 853



Врядли надо использовать библиотеку <alloc.h>


--------------------
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_GMaxim87_*
сообщение Dec 23 2006, 11:02
Сообщение #3





Guests






Прототипы ф-ий:

#include <stdlib.h>
void *malloc(size_t кол-во_байтов) /* Выделяет память */
void free(void *p) /* Освобождает память (p - указатель на участок памяти
* ранее выделенный с помощью ф-ии malloc() ) */

Пример: (толька для С, в С++ запись более простая)

/* mallok & free_23.12.2006 */
#include <stdio.h>
#include <stdlib.h>

char* mass(void);

int main(void)
{
char* ps = mass();
printf("%s",ps);
free(ps); /* Освобождение памяти */
system("pause");
return 0;
}

char* mass(void)
{
char* s = malloc(5*sizeof(char)); /* Передача s в кучу */
s = "User\n";
if(!s) {
printf("Память исчерпана!\n");
exit(1);
}
return s;
}
Вернуться к началу страницы
 
+Цитировать сообщение
Гость_mix_*
сообщение Aug 29 2007, 21:13
Сообщение #4





Guests






Цитата(GMaxim87 @ Dec 23 2006, 12:02) *
char* mass(void)
{
char* s = malloc(5*sizeof(char)); /* Передача s в кучу */
s = "User\n";
if(!s) {
printf("Память исчерпана!\n");
exit(1);
}
return s;
}

Чувак, а тебе не кажется что после " s = "User\n"; " указатель s будет указывать на память где лежит "User\n", а то что сделано при помощи
char* s = malloc(5*sizeof(char));
будет "навсегда excl.gif " утеряно?
Вернуться к началу страницы
 
+Цитировать сообщение

Сообщений в этой теме


ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 3rd July 2025 - 18:03