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

Уничтожение динамического массиа строк - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Связные списки http://www.cyberforum.ru/cpp-beginners/thread277809.html
Вот есть код все работает отлично но препод сказал что-бы при вводе элементов в список элементы сортировались вот к примеру 20 5 8 12 1 10 11 а должно быть 1 5 8 10 11 12 20 это задача про казнь она сделана тока надо сделать что-бы элементы сортировались плз помогите!!! #include "stdafx.h" #include "iostream" using namespace std; struct Uzel { int value; int num; struct Uzel *next;
C++ Отлов рисунка по экрану "бегает" рисунок, его положение определяется программой, необходимо считать из программы координаты этого рисунка. Не подскажите с чего начать ? http://www.cyberforum.ru/cpp-beginners/thread277804.html
C++ Подсчитать появление строчных букв...
Дан текстовый файл. Подсчитать число появлений в нем каждой строчной (то есть маленькой) латинской буквы и создать строковый файл, элементы которого имеют вид «<буква>–<число ее появлений>» (напри- мер, «а–25»). Буквы, отсутствующие в тексте, в файл не включать. Строки упорядочить по возрастанию кодов букв. Пытался зделать так... #include <iostream> #include <fstream>
C++ Как удалить объект по указателю на базовый класс?
Допустим есть несколько классов: // абстрактный класс - введен для управления наследниками class A{ ... } // рабочий класс 1 class B: virtual public A{ ...
C++ (CИ)26. Определить сколько раз последовательность из N произвольных чисел меняет знак http://www.cyberforum.ru/cpp-beginners/thread277763.html
(СИ)Определить сколько раз последовательность из N произвольных чисел меняет знак
C++ Массивы Помогите решить задачу! Генератором сгенерировать массив на сто элементов чисел в диапазоне от 0 до 20. Каждый элемент - это количество выбоин на участке 100 метров дороги. Если до 10-и выбоин - хорошая дорога Рисуется символами *. После - плохая - символами #, Если подряд встречаются 3 и более плохих участков, этот сектор отдается для ремонта бригаде со спецтехникой. Рисуется символом $ ... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
18.04.2011, 00:19     Уничтожение динамического массиа строк
Zero-cool, Лови... Во всех функциях был выход за пределы массивов.

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
#include <iostream>
#include <clocale>
#include <string.h>
using namespace std;
int main()
{
void form(char** charr,char** _charr,int n);
void init(char** charr,int n);
void maxplus(char** charr,char** _charr,int n);
void printplus(char**_charr,int n);
int n;
setlocale(LC_ALL,"Russian");
cout<<"Введiть кiлькiсть рядкiв"<<endl;
cin>>n;
cout<<"1. Сформувати масив рядкiв\n";
cout<<"2. Iнiцiалiзувати масив\n";
cout<<"3. Провести дії\знищити масив\n";
cout<<"4. Виведення обробленного масиву\n";
cout<<"5. Вихiд\n";
char **charr=new char* [n];
char **_charr=new char* [n+1];
int k;
        do
        {       
                cout<<"Очiкування введення:"<<endl;
                cin>>k;
                switch (k)
                {
                        case 1: form(charr,_charr,n); break;
                        case 2: init(charr,n);break;
                        case 3: maxplus(charr,_charr,n); break;
                        case 4: printplus(_charr,n); break;
                }
        }
                while(k!=5);
return 0; 
}
void form(char** charr,char** _charr,int n)
{
        for(int i=0;i<n;i++)
        charr[i]=new char[255];
        for(int i=0;i<n+1;i++)
        _charr[i]=new char[255];
}
 
void init(char **charr,int n)
{
        cout<<"Введiть рядки"<<endl;
        cin.get();
        for(int i=0;i<n;i++)
        cin.getline(charr[i],254);
}
void maxplus(char** charr,char** _charr,int n)
{
        int maxln(0),currln(0),point;
        for(int i=0;i<n;i++)
        {
                currln=strlen(charr[i]);
                if(currln>maxln)
                {
                        maxln=currln;
                        point=i;
                }
        }
        cout<<"input string"<<endl;
        char* plus=new char[200];
        cin.get();
        cin.getline(plus,199);
        int pplus(-1);
        for(int i=0;i<n;i++)
        {
                pplus++;
                strcpy(_charr[pplus], charr[i]);
                if(i==point)
                {
                        strcpy(_charr[i+1], plus);
                        _charr[i+1]=plus;
                        pplus++;
                }
        }
        for(int i=0;i<n;i++)
        delete[] charr[i];
        delete charr;
}
void printplus(char**_charr,int n)
{
        for(int i=0;i<n+1;i++)
        cout<<_charr[i]<<'\n';
}
 
Текущее время: 05:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru