Сейчас на форуме: r0lka, yashechka (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› Селектор массива
Посл.ответ Сообщение

Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 12 сентября 2005 17:32
· Личное сообщение · #1

Есть несколько массивов, например: a[5], b[7], c[10], d[14], и есть цикл типа
unsigned char i=0;
do { proc(a[++i])} while i<a[0]; Нужно в зависимости от значения некоторой переменной k подставлять в этот цикл нужный массив. Можно например так:
if (k==1) do { proc(a[++i])} while i<a[0];
if (k==2) do { proc(b[++i])} while i<b[0];
if (k==3) do { proc(c[++i])} while i<c[0];
if (k==4) do { proc(d[++i])} while i<d[0];
Но массивов очень много (более 30), как это сделать по-другому, т.е подставить в цикл массив соотв. переменной, чтобы не писать 30 раз if?

-----
Research is my purpose




Ранг: 12.0 (новичок)
Активность: 0.010
Статус: Участник

Создано: 12 сентября 2005 17:42
· Личное сообщение · #2

char a[10],b[20],c[15], ... , z[256];
char *arr[] = {a, b, c, ... , z};
int X = 0; //index of array we need
do { proc(arr[X][++i])} while i<arr[X][0];



Ранг: 12.0 (новичок)
Активность: 0.010
Статус: Участник

Создано: 12 сентября 2005 18:39
· Личное сообщение · #3

не попугайничай... ты хоть знаешь, что такое полиморфизм?
и вообще, пример был на С,а не на С++



Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

Создано: 12 сентября 2005 18:41
· Личное сообщение · #4

2scf: спасибо за помощь, вариант оптимальный, вопрос можно считать исчерпанным.

-----
Research is my purpose



 eXeL@B —› Крэки, обсуждения —› Селектор массива
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати