| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Ошибка в конструкторе класса |
| Автор: T0ohtik 2.5.2008, 11:00 | ||||||
Здравствуйте товарищи программисты! Помогите исправить ошибку в конструкторе класса:
Ошибка возникает в строке memcpy(nLongNumber,nInsertNumber,_msize(nInsertNumber)); Возникает она не всегда. Если в качестве указателя nInsertedNumber передать массив объявленный следующим образом:
То все пройдет нормально. А если так:
То программа вывалиается. |
| Автор: vinter 2.5.2008, 11:31 | ||
ты написал какой то непонятный код, сначала ты получаешь два указателя указывающих в одну и ту же область, а потом пишешь из себя в себя же.. P.S пишешь на С++, пиши все на нем. Нафига malloc? |
| Автор: T0ohtik 2.5.2008, 11:46 |
| vinter, что-то я не могу уловить. Есть класс, делаю его инициализацию. Для этого создаю массив чисел. И указатель на этот массив передаю в конструктор. Далее в конструкторе мы определяем размер переданного массива. Выделяем память в классе и соответственно копируем туда массив. Где одинаковая область памяти? |
| Автор: vinter 2.5.2008, 12:10 |
после этого действа, мы имеем два указателя указывающих на один блок в памяти где ты память выделяешь? |
| Автор: Lazin 2.5.2008, 12:25 | ||
не понял, а где выделение памяти? куда ты копируешь массив? и вообще зачем там memcpy если копировать некуда))
|
| Автор: T0ohtik 2.5.2008, 12:37 | ||
Ну память я выделяю для переменной, которая находится классе.
Или что ты имеешь в виду? |
| Автор: Carnifex 2.5.2008, 12:48 |
| T0ohtik, для статических массивов _msize не предназначен. Передавай размер в параметре конструктора. |
| Автор: vinter 2.5.2008, 14:54 |
где?? в упор не вижу. ну и слушай умных людей, размер передавай в конрукторе |
| Автор: T0ohtik 2.5.2008, 19:57 | ||
vinter,
вот здесь выделил Да все исправил, размер передаю через конструктор. Вроде все равботает! Правда с операторм присвоения что то не так, но то совсем другая история... Всем спасибо. |