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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2012, 00:20   #1
Jawner
Пользователь
 
Регистрация: 11.04.2012
Сообщений: 15
По умолчанию Проблема с использованием динамической памяти, ошибка с конвертом типов данных

Всем доброго времени суток.
Задание: Найти индекс минимального элемента в:
1)Символьном массиве из 8 элементов;
2)массиве целых чисел из 10 элементов;
Память для входящих данных в каждой из двух частей нужно динамично захватить, а после выполнения этой части задания освободить. Все нужно сделать на 1 кнопке.


Вот код

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int *min=NULL,*imin=NULL,*Len;
min=new(int);
imin=new(int);
Len=new(int);
imin=0;
typedef AnsiString StringType;
StringType *pstr=NULL;
pstr=new(AnsiString);
Len=Edit1->GetTextLen();
if(Len!=8){ShowMessage("Íåïðàâèëüíûé ââîä");return;}
pstr=Edit1->Text;
min=(*pstr)[1];
for(int i=2;i<8;i++)
if((*pstr)[i]<min){min=(*pstr)[i];imin++;};
Edit2->Text=IntToStr(imin);
delete[] pstr,min,imin,Len;
pstr=NULL;

//--------------------------------
//Êîíåö 1 ÷àñòè
//--------------------------------

imin=0;
typedef int Inttype[10];
Inttype *pA=NULL;
pA=new(Inttype[10]);
Len=Memo1->Lines->Count;
if(Len!=10){ShowMessage("Íåïðàâèëüíûé ââîä");return;}
for(int i=0;i<10;i++)
(*pA)[i]=StrToInt(Memo1->Lines->Strings[i]);
min=(*pA)[0];
for(int i=1;i<10;i++)
if((*pA)[i]<min){min=(*pA)[i];imin++;};
Edit3->Text=IntToStr(imin);
delete[] min,imin,Len,pA;
min=NULL;
imin=NULL;
Len=NULL;
pA=NULL;
}

Компилятор выдает только вот такого типа ошибки:
Cannot convert 'int' to 'int *' и Cannot convert 'char' to 'int *'


В чем ошибка ?
Jawner вне форума Ответить с цитированием
Старый 25.04.2012, 01:03   #2
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Дублирование тем?
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 25.04.2012, 01:09   #3
Jawner
Пользователь
 
Регистрация: 11.04.2012
Сообщений: 15
По умолчанию

Цитата:
Сообщение от LiuLiuJons Посмотреть сообщение
Ну не одном же форуме.
Jawner вне форума Ответить с цитированием
Старый 25.04.2012, 10:49   #4
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

В какой строке ошибки?
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 25.04.2012, 10:52   #5
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Да, не на одном. Но ответ будет как на том форуме - у вас жуткое понятие о работе с указателями, почитайте соответствующую лит-ру.

А вообще вам в первую очередь надо помнить, что объявляя переменные таким образом:
Код:
int *min=NULL,*imin=NULL,*Len;
вы объявляете указатели на int, а не переменные типа int. И в последствии им нельзя присваивать значение int, как вы делаете, например, вот тут:
Код:
Len=Edit1->GetTextLen();
Тогда уж *len = ...

Но всё равно весь ваш код дико выглядит: неужели вам везде нужны указатели? Может просто динамически создавать и освобождать массив, для типа int например:
Код:
int n = 10;
int *arr = new int[n];
delete[] arr;
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 25.04.2012, 12:01   #6
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Код:
int *min=NULL,*imin=NULL,*Len;
min=new(int);
imin=new(int);
Len=new(int);
imin=0;
Jawner завязывай с употреблением галлюциногенов. Я сначала даже не посмотрел на код. Его надо сюда http://govnokod.ru/
Пока че то не доступен.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с взаимодействием динамической и статической памяти - обращение к статической переменной Comst95 Паскаль, Turbo Pascal, PascalABC.NET 1 03.01.2012 18:46
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти ]tach[ Общие вопросы C/C++ 1 19.01.2011 13:16
Ошибка типов данных Lotles Общие вопросы C/C++ 0 08.11.2010 12:53
Проблема выделения динамической памяти в С++ oxygen90 Помощь студентам 3 14.09.2009 21:47
Excel+ Delphi ошибка типов данных Tanuska___:) БД в Delphi 8 28.01.2009 18:04