Форум программистов, компьютерный форум CyberForum.ru

Смена местами элементов массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что делает cin.get http://www.cyberforum.ru/cpp-beginners/thread655241.html
Вот код: #include <iostream> int main() { int a; std::cin >> a; std::cin.putback ('A'); std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); std::cout << std::cin.get() << std::endl;
C++ Посроение функции Помогите написать код для построения параболы с уравнения вида ax^2+bx+c на с++ http://www.cyberforum.ru/cpp-beginners/thread655232.html
Работа с матрицами. Ошибочка C++
class matrix{ private: double **Matrix; int Rows, Cells; public: matrix(int N, int M): Rows(N), Cells(M){} friend ostream& operator<< (ostream& stream, matrix& obj); friend istream& operator>> (istream& stream, matrix& obj); void input(); ~matrix(){} };
C++ конструкторы
У меня вопрос: если программа с конструкторами, то нужно ли создавать объект в программе? И по какому синтаксису вызвать функцию, описанную в классе?
C++ Свернуть консольное окно в трей и развернуть по щелчку мыши http://www.cyberforum.ru/cpp-beginners/thread655212.html
Все доброго времени суток! Написал небольшую программку, которая периодически шлет данные в COM порт. Чтобы лишнее окно не висело, хочу затолкать его в трей (где часы). Никак не получается создать там иконку (про обработку нажатия я пока вообще молчу). Нашел в интернете упоминание о функции Shell_NotifyIcon, полез читать в msdn, но как-то не срослось... Во-первых, как заполнить hIcon?...
C++ Задача на алгоритм Дейкстры (как лучше хранить информацию?) Доброго времени суток. Есть задача: Одна из команд-участниц олимпиады решила вернуться домой на электричках. При этом ребята хотят попасть домой как можно раньше. К сожалению, не все электрички идут от города, где проводится олимпиада, до станции, на которой живут ребята. И, что еще более обидно, не все электрички, которые идут мимо их станции, останавливаются на ней (равно как вообще,... подробнее

Показать сообщение отдельно
klynxe
10 / 10 / 4
Регистрация: 07.09.2012
Сообщений: 537
20.09.2012, 22:54  [ТС]     Смена местами элементов массива
Да у меня тоже есть рабочий пример где она освобождается) А конкретно в моей программе, как мне кажется, delete в моих переменных видит не адрес, а какие-то значения, которые просто фильтрует.

Добавлено через 1 минуту
Вот полный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
Form1->ComboBox1->SetFocus();       // Передача фокуса ComboBox1
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1KeyDown(TObject *Sender, WORD &Key,TShiftState Shift)
{
if (Key == 13)  {
        ComboBox1->Items->Add(ComboBox1->Text);  
// Строка из окна редактирования заносится в ComboBox1
        ComboBox1->Text="";             // Очистка окна
}
}
void __fastcall TForm1::ComboBox1Select(TObject *Sender)
{
int n, i, nst,kod;
String got;
nst = ComboBox1->ItemIndex;             // Определение номера строки
AnsiString st = ComboBox1->Items->Strings[nst];
char* ss = st.c_str();  // Запись выбранной строки st
if (st[1] != ' ')   n = 1;              // Здесь и ниже ' ' - пробел
            else   n = 0;
for(i=1; i<st.Length(); i++)                // Просмотр символов строки st
            if(st[i] == ' ' && st[i+1] != ' ')
                     {
                         n++;}
 
if(n>1)
{
char **a;
int j=0;
a = new char*[n];
int lo=st.Length();
int k=0;
for(i=0;i<lo+1; i++)
{
c:
if(i==lo&&ss[i]=='\0'){goto v;}
if(k<0) {k=0;}
if(ss[i]!=' ')
{
k++;
}
else if((ss[i]==' '&&ss[i-1]==' ')||(ss[i]==' '&&i==0)){i++;goto c;}
else
{
v:
if(k>0)
{
a[j]=new char [k+1];
if(i!=lo){a[j][k]='\0';}
if(i==lo&&ss[i]==' '){goto x;}
for(int f=i;k>-1;a[j][k]=ss[f-1],f--)
k--;
}
else {
goto x;}
j++;
}
}
x:
int sch2,sch;
sch=sch2=j;
while(sch2>0){
j=sch;
while(j>1)
{
j--;
double f=strcmp(a[j-1], a[j]);
if(f>0)
{
char* l1=a[j];
char* l2=a[j-1];
AnsiString s1=NULL;
AnsiString s2=NULL;
s1=a[j-1];
s2=a[j];
int lo1=s1.Length();
int lo2=s2.Length();
a[j]=NULL;
a[j-1]=NULL;
a[j]=new char [lo1];
a[j-1]=new char [lo2];
a[j-1]=l1;
a[j]=l2;
}
}
sch2--;
}
for (int i=0;i<sch ;i++){
Memo1->Lines->Add(a[i]);
}
Memo1->Lines->Add("");
delete []a;
}
}
//---------------------------------------------------------------------------
Какя понял причина в строке char* ss = st.c_str();

Добавлено через 1 минуту
А вообще мне главной что работает) А то уже с этой одной фигней мелкой уже запарился
 
Текущее время: 01:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru