Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2011, 10:26   #1
Максикок
Пользователь
 
Регистрация: 07.10.2010
Сообщений: 71
По умолчанию копирование массива

Здравствуйте! значит мне нужно скопировать массив! в первом куске кода я заполняю массив рандомно во втором куске мне нужно использовать этот же массив то есть сделать копию его!
подскажите как это сделать!
int i=0,*vptr=0,*vptr1=0;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Series1->Clear();
Series2->Clear();
Panel1->Caption="";
int count,current=0;
count=(CSpinEdit2->Value-CSpinEdit1->Value)/CSpinEdit3->Value+1;//размер массива вводим в форме
for(int n=CSpinEdit1->Value;n<=CSpinEdit2->Value;n+=CSpinEdit3->Value)
{
vptr=new int[n];
assert(vptr!=0);
for(int j=0;j<n;j++)
vptr[j]=random(CSpinEdit4->Value-CSpinEdit5->Value+1)+CSpinEdit5->Value;//заполняем массиврандомно
if(CheckBox1->Checked){
StringGrid1->Cells[0][i]="Исходный массив";
for(int j=0;j<n;j++)
StringGrid1->Cells[j+1][i]=IntToStr(vptr[j]);
i++;}
current+=1;
ProgressBar1->Position=100*current/count;
delete[]vptr;
}
vptr=0;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Series1->Clear();
Series2->Clear();
Panel2->Caption="";
int count,current=0;
count=(CSpinEdit2->Value-CSpinEdit1->Value)/CSpinEdit3->Value+1;
for(int n=CSpinEdit1->Value;n<=CSpinEdit2->Value;n+=CSpinEdit3->Value)
{
vptr1=new int[n];
assert(vptr1!=0);
for(int j=0;j<n;j++)


if(CheckBox1->Checked){
StringGrid2->Cells[0][i]="Исходный массив";
for(int j=0;j<n;j++)
StringGrid2->Cells[j+1][i]=IntToStr(vptr1[j]);
i++;}
current+=1;
ProgressBar2->Position=100*current/count;
delete[]vptr1;
}
vptr1=0;

}
Максикок вне форума Ответить с цитированием
Старый 23.03.2011, 10:46   #2
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Код:
vptr1 = vptr
либо по циклу
Код:
for(int j=0;j<n;j++)
vptr1[j] = vptr[j]
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 23.03.2011, 20:41   #3
Максикок
Пользователь
 
Регистрация: 07.10.2010
Сообщений: 71
По умолчанию

сделал так! но работает не так как надо! программа останавливается именно в этом месте vptr1[j]=vptr[j].
Максикок вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal: Составить программу генерирования массива B, состящего из отрицательных элементов массива a mrRastom Помощь студентам 2 15.01.2011 14:33
Сумма и произведение элементов массива, удовлетворяющих условию (генерация float массива) felodese Помощь студентам 1 11.11.2010 20:52
копирование из одного двумерного массива в другой Sanprof Общие вопросы Delphi 7 08.10.2010 17:31
копирование массива на pdp-11 Brabus Помощь студентам 2 18.04.2010 20:55
копирование массива Canvas Общие вопросы Delphi 5 21.11.2008 17:50