![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| T0ohtik |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 9.2.2008 Репутация: нет Всего: 1 |
Здравствуйте товарищи программисты! Помогите исправить ошибку в конструкторе класса:
Ошибка возникает в строке memcpy(nLongNumber,nInsertNumber,_msize(nInsertNumber)); Возникает она не всегда. Если в качестве указателя nInsertedNumber передать массив объявленный следующим образом:
То все пройдет нормально. А если так:
То программа вывалиается. Это сообщение отредактировал(а) T0ohtik - 2.5.2008, 12:51 |
||||||
|
|||||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
ты написал какой то непонятный код, сначала ты получаешь два указателя указывающих в одну и ту же область, а потом пишешь из себя в себя же.. P.S пишешь на С++, пиши все на нем. Нафига malloc? |
|||
|
||||
| T0ohtik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 9.2.2008 Репутация: нет Всего: 1 |
vinter, что-то я не могу уловить. Есть класс, делаю его инициализацию. Для этого создаю массив чисел. И указатель на этот массив передаю в конструктор. Далее в конструкторе мы определяем размер переданного массива. Выделяем память в классе и соответственно копируем туда массив. Где одинаковая область памяти?
|
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
внутри конструктора нельзя по указателю определить размер массива. Передавай вместе с указателем еще и размер.
|
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
после этого действа, мы имеем два указателя указывающих на один блок в памяти где ты память выделяешь? |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
не понял, а где выделение памяти? куда ты копируешь массив? и вообще зачем там memcpy если копировать некуда))
|
|||
|
||||
| T0ohtik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 9.2.2008 Репутация: нет Всего: 1 |
Ну память я выделяю для переменной, которая находится классе.
Или что ты имеешь в виду? |
|||
|
||||
| Carnifex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
T0ohtik, для статических массивов _msize не предназначен. Передавай размер в параметре конструктора.
|
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
где?? в упор не вижу. ну и слушай умных людей, размер передавай в конрукторе |
|||
|
||||
| T0ohtik |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 9.2.2008 Репутация: нет Всего: 1 |
vinter,
вот здесь выделил Да все исправил, размер передаю через конструктор. Вроде все равботает! Правда с операторм присвоения что то не так, но то совсем другая история... Всем спасибо. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |