Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразования типов, Работа с динамической памятью 
:(
    Опции темы
My_Pioner
Дата 14.12.2004, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 12.12.2004

Репутация: нет
Всего: нет



Вот строчка кода, вопрос как наиболее оптимальным способом записть по адресу зарезервированному этим указателем число, объект или еще что нибудь.

Код

void *my_void = malloc(12);
// ваш код пожалуйста

PM MAIL   Вверх
_hunter
Дата 14.12.2004, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



если объект -- почемы бы new не юзать?
строку -- strcpy((char *)(my_void), "test");


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
NiJazz
Дата 14.12.2004, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Поправка:
Код

void *my_void = (void*)malloc(my_void_size_in_bytes);


Код

char* s = (char*s)malloc(str_len);
s = "Hello, Dolly!";  // str_len >= strlen("Hello, Dolly!");


Но если строка объявлена как
char s[str_len], то для того, чтобы присвоить ей значение, нужно использовать strcpy.

Код

char s[str_len];
strcpy(s, "Hello, Dolly!");

Добавлено @ 12:16
массив же можно запонить либо в цикле
Код

for (int i = 0; i<arr_size; i++)
{
  my_array[i] = rand % 10;
}

либо так:
Код

memcpy(my_array, source_array, arr_size);

PM MAIL   Вверх
srd
Дата 14.12.2004, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


Профиль
Группа: Участник Клуба
Сообщений: 951
Регистрация: 30.8.2003
Где: Владивосток

Репутация: 27
Всего: 49



Цитата

Код

char* s = (char*s)malloc(str_len);
s = "Hello, Dolly!";  // str_len >= strlen("Hello, Dolly!");


Данный пример не верен. В первой строке выделяется str_len байт, а адрес выделенного куска памяти записывается в указатель s.
Во второй строке в указатель s записывается адрес строкового литерала, а память, на которую он указывал раньше, теряется. Следует пользоваться strcpy (и следить, чтобы длина записываемой строки не превышала длину выделенного куска памяти), memcpy и т.п.
Код

char* s = (char*s)malloc(str_len);
strcpy(s, "Hello, Dolly!");  // str_len >= strlen("Hello, Dolly!");




--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
My_Pioner
Дата 14.12.2004, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 12.12.2004

Репутация: нет
Всего: нет



Господа, вы здесь приводите примеры с символьным типом или правильнее выразиться с указателем на символьный тип. Кто то из вас прав, а кто-то не совсем но повнимательней прочитайте условие задачи!!!
PM MAIL   Вверх
NiJazz
Дата 14.12.2004, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



My_Pioner
Тогда вопрос должен быть конкретнее.
PM MAIL   Вверх
Adil'
Дата 14.12.2004, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 26.8.2004
Где: Питер

Репутация: 6
Всего: 15



My_Pioner, а ты бы написАл по-конкретней, что собственно нужно-то?


--------------------
Удачи
PM MAIL WWW   Вверх
LuckLess
Дата 14.12.2004, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 15.9.2004

Репутация: 1
Всего: 1



memcpy();
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0554 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.