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

Удаление динамического массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверить два идущих подряд нуля в массиве http://www.cyberforum.ru/cpp-beginners/thread1041667.html
Как правильно проверить два идущих подряд нуля в массиве? Чтобы при выполнении условия один массив заполнялся данными из другого? Мои попытки к успеху не приводят if (mas != 0 && mas != 0 && mas != mas) arr = mas;
C++ Файл со строками Дан текстовый файл. Переписать в новый файл все его строки, длина которых больше заданного числа. Входной файл «1.txt» содержит строковые словосочетания. То есть нужно со строками работать? Или как,не понимаю... http://www.cyberforum.ru/cpp-beginners/thread1041665.html
C++ Дано натуральное четырехзначное число. Определить все цифры в цифровой записи данного числа, на которые оно делится без остатка
Дано натуральное четырехзначное число. Определить все цифры в цифровой записи данного числа, на которые оно делится без остатка. Формат входных данных Входной файл содержит натуральное четырехзначное число. Формат выходных данных Вывести количество таких цифр, а далее вывести сами цифры в порядке возрастания без повторений. Пример: Вход
Сумма ряда C++
помогите решить такую задачу y=1+x/1!+x^2/2!+...+x^n/n! короче мудрил мудрил в итоге получил так но всеравно неправильно! #include <iostream.h> #include <conio.h> #include <cmath.h> void main() { float p, y, n, i, x ; cout<<"Vvedite n = "; cin>>n; cout<<"Vvedite x = ";
C++ Слияние двух массивов http://www.cyberforum.ru/cpp-beginners/thread1041621.html
Всем привет. Возникла проблема с задачей. Даны два массива одинакоого размера. Нужно создать 3 массив который будет хранить элементы первого и второго массива. Проблема в том что первый массив у меня передается в 3 массив, а все элементы 2 массива почему то равны первому элементу(тоесть счетчик j не инкрементируется)вот ф-ция которая должна соединить 2 массива void merge(int arr,int arr1,int...
 

Показать сообщение отдельно
thejadefalcon
 Аватар для thejadefalcon
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 41
14.12.2013, 22:29     Удаление динамического массива
Привет. Сделал программу с 3 динамическими массивами, но дело в том, что 2 из них, размер которых задается с клавиатуры, удаляются в конце из памяти, а 3-ий, размер которого формируется в процессе выполнения программы, не удаляется - компилятор указывает на проблему в delete[]C;
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
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
void main()
 
{
    int n, x, k;
    int i = 0;
 
    printf("Enter the size of the array A:\n");
    scanf("%d", &n);
    printf("Enter the size of the array B:\n");
    scanf("%d", &x);
    
    // Задание размера и ввод массивов
    int *A = new int[n]; // Выделение памяти для массива
    printf("Enter the elements of array A:\n");
    for (i = 0; i < n; i++)
        scanf("%d", &A[i]);
 
    int *B = new int[x];
    printf("Enter the elements of array B:\n");
    for (i = 0; i < x; i++)
        scanf("%d", &B[i]);
    
    k = 0;
    int *C = new int[k];
        
    // Начало обработки массивов
    for (int i = 1; i < n; i++)
    if ((A[i] % 2 == 0) && (A[i - 1] % 2 != 0)) // Поиск четного элемента в A
    {
        C[k] = A[i];
        for (int j = i; j < n; j++)
            A[j] = A[j + 1];
        n = n - 1;
        k++;
    }
    
    printf("Changed array A: ");
    for (int i = 0; i < n; i++)
        printf("%2d", A[i]);
    printf("\n");
    printf("Resulting array C: ");
    for (int i = 0; i < k; i++)
        printf("%2d", C[i]);
    printf("\n");
    
    // Обработка массива B и C
    int min = B[0];
    for (i = 0; i < x; i++)
        if (B[i] < min)
            min = B[i];
    int max = B[0];
    for (i = 0; i < x; i++)
    if (B[i] > max)
        max = B[i];
    double median = (min + max) / 2;
    double delta = abs(median - min);
    int resID = 0;
    for (i = 0; i < x; i++)
        if (abs(median - B[i]) < delta)
        {
            resID = i;
            delta = abs(median - B[i]);
        }
    C[k] = B[resID];
    
    for (int j = resID; j < x; j++)
        B[j] = B[j + 1];
    x = x - 1;
    
    printf("Changed array B: ");
    for (int i = 0; i < x; i++)
        printf("%2d", B[i]);
    printf("\n");
    printf("Resulting array C: ");
    for (int i = 0; i <= k; i++)
        printf("%2d", C[i]);
    printf("\n");
    
    // Удаление памяти
    delete[]A;
    delete[]B;
    delete[]C;
    
    system("pause");
}
Если избавиться от строчки delete[]C;, программа компилируется и выполняется. В чем дело?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru