Форум программистов, компьютерный форум 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 и более плохих участков, этот сектор отдается для ремонта бригаде со спецтехникой. Рисуется символом $ ... подробнее

Показать сообщение отдельно
Zero-cool
 Аватар для Zero-cool
5 / 5 / 1
Регистрация: 05.01.2011
Сообщений: 30
17.04.2011, 02:42     Уничтожение динамического массиа строк
Собсно вот метод:
C++
1
2
3
    //for(int i=0;i<=n;i++)
    //delete[] charr[i];
    //delete charr;
НО в моей програме он выбивает ошибку(компилируется нормально)
(задача - добавить строку, после строки наибольшей длины)
но считать эту строку програма "забывает" спросить
C++
1
2
    char* plus=new char[200];
    cin.getline(plus,200);
вот весь код
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
#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;
    for(int i=0;i<=n;i++)
    cin.getline(charr[i],255);
}
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.getline(plus,200);
    int pplus(-1);
    for(int i=0;i<=n;i++)
    {
        pplus++;
        _charr[pplus]=charr[i];
        if(i==point)
        {
            _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';
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru