Русское сообщество по скриптингу

Как присвоить значение массиву?

Все вопросы по скриптингу для Metamod, помощь в редактировании плагинов.
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для
Metamod.


Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник плагина.

Как присвоить значение массиву?

Сообщение Chuvi » 16 июл 2013, 21:00

Код: Выделить всё
void func()
{
char data[]={1,2,3,4,5,6,7};
}
 

Если сделать так, то всё ок.
А как быть если надо data вынести за пределы функции и сделать динамической?
Код: Выделить всё

char 
*data
void func
()
{
data=new char [размер];
*
data=(1,2,3,4,5,6,7);
}
 

Не катит.

ЧЯДНТ? :(
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Как присвоить значение массиву?

Сообщение 6a6kin » 17 июл 2013, 01:00

Фигурные скобки и их содержимое — это агрегат. Агрегатом можно только иницализировать массив при его определении. Смысла инициализировать агрегатом что-либо ещё нету, потому что в любом случае размер его известен на стадии компиляции.

Второй кусок кода — вообще хрень какая-то. Если нужно инициализировать динамически выделенную память, в Си существует memcpy (в плюсах массивы по канонам использоваться не должны).
На заказ не пишу.
Аватара пользователя
6a6kin
Скриптер
 
Сообщения: 332
Зарегистрирован: 09 мар 2010, 16:40
Благодарил (а): 38 раз.
Поблагодарили: 278 раз.

Re: Как присвоить значение массиву?

Сообщение quckly » 17 июл 2013, 09:28

Chuvi, for(int i = 0; i < 7; i++) data[i] = i+1;
Аватара пользователя
quckly
Скриптер
 
Сообщения: 403
Зарегистрирован: 20 ноя 2009, 10:03
Благодарил (а): 41 раз.
Поблагодарили: 243 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Как присвоить значение массиву?

Сообщение Chuvi » 19 июл 2013, 02:53

quckly писал(а):Chuvi, for(int i = 0; i < 7; i++) data[i] = i+1;

1,2,3,4,5,6,7 было для примера.
По факту, там могут быть любые данные соответствующего диапазона.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: Как присвоить значение массиву?

Сообщение TurangaLeela » 24 июл 2013, 13:24

Chuvi,
Код: Выделить всё

enum {
aSizeOf = 10
};

int aTvoyMassiv[aSizeOf];
int i;

for(i = 0; i < aSizeOf; i++) {
aTvoyMassiv[i] = (rand() % 10);
}

Это ? Или ты о чем
Аватара пользователя
TurangaLeela
 
Сообщения: 930
Зарегистрирован: 24 авг 2010, 11:19
Откуда: Некрополь у Кремлёвской стены
Благодарил (а): 10 раз.
Поблагодарили: 266 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life
Valve Hammer Editor 3.5
C | C++ | Java

Re: Как присвоить значение массиву?

Сообщение Fedcomp » 24 июл 2013, 14:41

он спрашивает как работать с динамическими массивами.
Например в плюсах это не нужно и можно использовать Vector.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Как присвоить значение массиву?

Сообщение TurangaLeela » 25 июл 2013, 04:13

ну так пусть и спрашивает про вектора, с ними я вроде как дружу :-)
Код: Выделить всё

struct STest {
int i;
float f;
};

void function(void) {
int i;
std::vector<struct STest *> vecTest;
struct STest * pData;

for(i = 0; i < 99; i++) {
pData = new struct STest;
(pData -> i) = i;
(pData -> f) = static_cast<float>(i);
vecTest.push_back(pData);
}
}
Аватара пользователя
TurangaLeela
 
Сообщения: 930
Зарегистрирован: 24 авг 2010, 11:19
Откуда: Некрополь у Кремлёвской стены
Благодарил (а): 10 раз.
Поблагодарили: 266 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life
Valve Hammer Editor 3.5
C | C++ | Java

Re: Как присвоить значение массиву?

Сообщение Fedcomp » 25 июл 2013, 07:28

Эм, вообще изначально он спрашивал как работать с динамическими массивами в C, мой коммент к автору относился.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4