Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2009, 15:22   #11
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

Ну так ведь "smth" - констовая строка, адрес которой ты копируешь в массив. Для создания нормальной строки надо выделить память под саму строку...

massiv[2] = (char*)calloc(10, sizeof(char)); // 10 - длина строки
strcpy(massiv[2], "stroka"); // копируем строку в массив чаров

и не забудь перед
free(massiv);
вызвать
free(massiv[2]);
wyvern@localhost:~$ sudo emerge --unmerge world
wyvern вне форума Ответить с цитированием
Старый 27.03.2009, 15:39   #12
Эйнж
 
Аватар для Эйнж
 
Регистрация: 02.08.2008
Сообщений: 9
По умолчанию

Понятно... я в приниципе так и думал, просто надеялся что обойдусь только переменным массивом, без динамического выделения памяти под каждую строку. Думал стандартные null-terminated строки меня не подведут... подвели, нехорошие

Цитата:
Сообщение от wyvern Посмотреть сообщение
и не забудь перед
free(massiv);
вызвать
free(massiv[2]);
Спасибо, учту
Эйнж вне форума Ответить с цитированием
Старый 27.03.2009, 16:00   #13
Pashan
Пользователь
 
Регистрация: 18.03.2009
Сообщений: 89
По умолчанию

Ха! Строки нельзя на халяву присваивать. Надо strcpy использовать.
Pashan вне форума Ответить с цитированием
Старый 27.03.2009, 16:20   #14
anton999
 
Регистрация: 27.03.2009
Сообщений: 4
По умолчанию

Вообще-то операторы malloc и calloc достались в наследство от с. В с++ разумнее использовть new.
anton999 вне форума Ответить с цитированием
Старый 27.03.2009, 17:17   #15
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от wyvern Посмотреть сообщение
все-таки такие вещи надо знать.
нынче многие начинают учить сразу плюсы без чистых Сей...
в итоге получаются полуфабрикаты..
Поддерживаю!

Цитата:
Сообщение от anton999 Посмотреть сообщение
Вообще-то операторы malloc и calloc достались в наследство от с. В с++ разумнее использовть new.
Во первых malloc() и calloc() - это не операторы.
Во вторых оператор new не позволяет изменить размер уже выделенной памяти
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Напомните как задать размер динамического массива Arassir Помощь студентам 4 08.03.2009 13:02
размер массива nosuchathing Общие вопросы C/C++ 6 15.01.2009 11:40
максимальный размер массива в 32-битной оси Adamant Свободное общение 5 03.12.2008 21:14
Размер массива в Delphi simple_Pro Помощь студентам 2 11.05.2008 09:15
Как узнать размер массива мандарин Общие вопросы Delphi 2 30.05.2007 19:18