Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> изменение размерности массива в цикле, как? 
V
    Опции темы
Syberex
Дата 12.12.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 15.9.2006
Где: Украина

Репутация: нет
Всего: нет



Код

unsigned long *First=new unsigned long[1]; // задаём начальный размер
         unsigned long *Second;

                for(unsigned long x=2;x<10;x++)
                         {
                                for(unsigned long y=0;y<x;y++)
                                {
                                  First[y]=y;  // заполняем массив
                                };
                                Second=new unsigned long[x];
                                memcpy(Second,First,x-1);
                                delete [] First;
                                First=Second;
                                for(unsigned long y=0;y<x;y++)
                                 {
                                   cout<<First[y]<<" ";   // как везёт
                                 };
                                cout<<endl;
                         };

        delete [] First;
        cout<<"Will Done"<<endl;


задача заключается в том чтобы в цикле изменять размерность массива, своего рода ресайз для нью, но вот бок, всё компилит, но значения в массиве далеки от совершенства. 


  
 

Это сообщение отредактировал(а) Syberex - 12.12.2006, 15:01
--------------------
whole power in artificial intelligences
PM MAIL ICQ   Вверх
JackYF
Дата 12.12.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Как минимум, в 6 строке выход за границы массива:
Код

for(unsigned long y=0;y<x-1;y++)



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Anikmar
Дата 12.12.2006, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 9
Всего: 59



memcpy(Second,First,x-1);

Копирование массива сделано неправильно, надо так:

memcpy(Second,First,sizeof(unsigned long) *(x-1));
PM MAIL ICQ   Вверх
JackYF
Дата 12.12.2006, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(Anikmar @  12.12.2006,  15:03 Найти цитируемый пост)
Копирование массива сделано неправильно, надо так:

memcpy(Second,First,sizeof(unsigned long) *(x-1)); 

Верно подметил...

Да и вообще, зачем вот так вот по элементу в цикле добавлять?
Используй std::vector...
Будет короче, быстрее, надежнее.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Syberex
Дата 12.12.2006, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 15.9.2006
Где: Украина

Репутация: нет
Всего: нет



работает спасибо!
--------------------
whole power in artificial intelligences
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0874 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.