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

Проблема с выделением памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Посоветуйте отличную книжку для новичка по изучению С++ http://www.cyberforum.ru/cpp-beginners/thread349144.html
Посоветуйте отличную книжку для новичка по изучению С++,который вообще не знаком с языком...
C++ Дерево поиска Дано дерево поиска, ключи которого – целые числа (положительные и отрицательные). Определить К-е «–»-е число, следующее за «+»-м числом при прямом просмотре дерева (TLR). У меня программа похоже вообще неправильно работает. Подскажите ошибки, пожалуйста. Помогите преобразовать эту программу в классы. #include <iostream.h> #include <iomanip.h> #include <stdlib.h> #include <conio.h> struct... http://www.cyberforum.ru/cpp-beginners/thread349135.html
C++ Как корректно вручную ввести данные
Как реализовать ручной ввод в данной программе? (Задание: вставить заданный пользователем элемент Е до и после элемента с минимальным ключом в заданном пользователем односвязном списке.) #include <iostream.h> #include <time.h> #include <stdlib.h> #include <conio.h> typedef int Tp; struct NodeBase {
C++ Вывод заданных чисел
Для вывода цифр 1,2,3 в различных комбинациях дана программа #include<iostream> #include<stdlib.h> using namespace std; int main () {setlocale(LC_ALL,"Rus"); for(int i=1;i<4;i++) for(int i1=1;i1<4;i1++)
C++ Отсутствие совместимости. http://www.cyberforum.ru/cpp-beginners/thread349131.html
Дилема такова,что я не могу заметить ошибки именно в ходе решения(быть может со скобками переборщил),а точнее нахождения y1 и y2.Ответы должны быть аналогичными,заранее извиняюсь за отсутствие начальных данных,кто чем может помогите.Заранее спасибо. #include<iostream> #include<cmath> using namespace std; int main() { double m,a,b;
C++ С++ массив объектов Люди начался новый учебный год опять обращаюсь за помощью File Имя файла.размер. количество обращений. создать массив объектов.ввывести. создать список файлов .размер которых превышает заданный. создать список упорядочить в алфавитном порядке создать список число обращений к которым превышает заданный вот как звучит само задание подскажите как мне сделать список из массива объектов не... подробнее

Показать сообщение отдельно
Wolf6969
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 15
08.09.2011, 00:45  [ТС]     Проблема с выделением памяти
Я вьехал!!! Спасибо за подробное обьяснение. Без последней фразы не понял бы) Еще раз благодарен.

Добавлено через 21 минуту
К сожалению не все так гладко. При попытке проверить корректность выделения возникла новая трабла.

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
#include <iostream>
#include  <conio.h>
#include <windows.h>
 
using std::cout;
using std::cin;
 
class Table{
    int size;
    int **table;
public:
    Table(int size){
        table = new int* [size];
        for (int i = 0; i < size; i++){
            table[i] = new int [size];
        }
 
        for (int i = 0; i < size; ++i){
            for (int j = 0; j < size; ++j){
                table[i][j]=rand()%10+1;
            }
        }
    }
 
    Table(const Table &t0){
         table = new int* [t0.size];   //выделение памяти для матрицы
         for (int i = 0; i < t0.size; i++){
             table[i] = new int [t0.size];
         }
 
         for (int i = 0; i < t0.size; ++i){
             for (int j = 0; j < t0.size; ++j){
                  table[i][j] = t0.table[i][j];
             }
         }
    }
 
    ~Table(){
        for (int i = 0; i < size; i++){
            delete[] table[i];                 //удаляем массивы int*-ов
        }
        delete[] table;                       //удаляем массив int**-ов
    }
    int detA();
 
    void showtable(){
        for (int i = 0; i < size; ++i){
            for (int j = 0; j < size; ++j){
                cout << table[i][j] << " ";
            }
            cout << "\n"
        }
    }
 
};
 
 
int main(int argc, char *argv[]){
    Table t1(5);
    t1.showtable();
    cout << "Done";
    getch();
return 0;
}
в итоге вижу в консоли только done
Отладка показывает, что в этом месте
C++
1
2
3
4
5
  for (int i = 0; i < size; ++i){
            for (int j = 0; j < size; ++j){
                table[i][j]=rand()%10+1;
            }
        }
с элементами массива -члена класса ничего не происходит, там просто адреса.
тоесть не работает ;(

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