Помогите, пожалуйста, найти ошибку в коде
От: DSblizzard Россия  
Дата: 08.11.07 03:22
Оценка:
template <class T>
void sozd(T* Mas_1x, int Razm) {
    Mas_1x = new T [Razm];
}

template <class TElem, class TZnach>
void prisv(TElem* Mas, int Nom, TZnach Znach) {
    Mas[Nom] = (TElem) Znach;
}

template <class T>
void prisv(T* Mas, int KolArg, T Arg1, T ...) {
    Mas[0] = Arg1;
    va_list Args;
    va_start(Args, Arg1);
    for (int i = 1; i < KolArg; i++) {
        prisv<T, T>( Mas, i, va_arg(Args, T) ); // При 2-м проходе (иногда позже) ошибка. Почему?
    }
    va_end(Args);
}

int RazmMasOboznOper = 17;
string* MasOboznOper;
void inic_mas_obozn_oper() {
    sozd(MasOboznOper, RazmMasOboznOper);
    prisv<string>(MasOboznOper, RazmMasOboznOper, "=", "<", "<=", "==", 
            ">=", ">", "!=", "+", "-", "*", "/", "^", "!", 
            "&", "|", "=>", "<=>");
}

void main() {
  inic_mas_obozn_oper();
}

Добавлена разметка — Кодт
Программировать сложно. Но не программировать еще сложнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.