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

Проверить на выход за границы массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка очереди <char> http://www.cyberforum.ru/cpp-beginners/thread856300.html
помогите пож с сортировкой очереди queue очередь состоит из латинсколо алфавита. нужно отсортировать по возростанию и по спаданию .. типо от а до z и от z до а если можно через <algoritm> ну или через масив char (была идея с асхи кодами но не вышло у меня) char a = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',...
C++ тип time_t Нужно ввести 2 переменные типа time_t с клавиатуры , потом переконвертировать их в строки и записать в файл. В процессе исполнения программы вылетает ошибка: Debug assertion failed. Expression: invalid null pointer. Что за такой невалидный нуль указатель не пойму. Даты вводил и в таком виде(25.11.2012 20:00:00) и в таком (Web Feb 13 16:06:10 2013) результат не меняется, все равно программа... http://www.cyberforum.ru/cpp-beginners/thread856297.html
C++ Символьные вычисления
Есть задача создания символьных вычислений с помощью C++. Все подобные приложения написаны на Lisp. Думал разобраться с SymbolicC++3 но документации нет вовсе и вся библиотека не компилируется а только отрывки. Расстроился и подумал что вот можно организовать взаимодействие C++ с консольным приложением Maxima, я бы с легкостью получил результат, если бы использовал php функцию shell_exec, но...
Матрица: определить количество строк, не содержащих ни одного нулевого элемента C++
для решения задач: 1) определить количество строк, не содержащих ни одного нулевого элемента; 2) найти максимальное из чисел, встречающихся в заданном массиве более одного раза. #include "stdafx.h" #include <conio.h> #include <stdio.h> int main() {
C++ Объявление объекта класса из DLL C++ Builder 6 http://www.cyberforum.ru/cpp-beginners/thread856274.html
Добрый день! Пишу программу которая вызывает функции из DLL с явной загрузкой. Полазил по инету, вроде все правильно делаю. Когда объявляю новый объект класса в проекте, компилятор ругается на эти 3 строчки в файле Unit1.h: SymbString* DLL_EI SymbStroka=new SymbString; BinString* DLL_EI BinStroka=new BinString; SymbString* DLL_EI DelStroka=new SymbString; Вот сама библиотека. Файл...
C++ Моя первая консольная игра :D Всем доброго времени суток! Сегодня я хочу показать вам свою первую игру, правда пока она работает в консоли :( В ней вы можете прыгать и ходить влево, вправо. Но у игры есть один баг: после прыжка вы передвигаетесь на одну клетку вправо, я пока не разобрался с этой проблемой. Вот код и видео: //////////////////////////////////////// //***Furyaev Stanislav*** // //***Moscow,... подробнее

Показать сообщение отдельно
Kreativ
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 202
06.05.2013, 18:48  [ТС]     Проверить на выход за границы массива
наброски класса сделал, только проблема с деструктором, вот сам класс:
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
#ifndef Ex_h
#define Ex_h
 
#include <iostream>
#include "TArray.h"
 
using namespace std;
 
template <class T, size_t size> class Array;
 
template <class T, size_t size>
class Ex {
    public:
        Ex(size_t s);
        ~Ex();
        void init(const T &elem, size_t n);
        T * get(void);
 
    private:
        size_t s;
        T *p;
};
 
 
template <class T, size_t size>
Ex<T, size> :: Ex(size_t s) {
    this -> s = s;
    p = reinterpret_cast<T*>(operator new[](s * sizeof(*p)));
}
 
 
template <class T, size_t size>
Ex<T, size> :: ~Ex() {
    //delete [] p;
}
 
 
template <class T, size_t size>
void Ex<T, size> :: init(const T &elem, size_t n) {
    new (p + n) T(elem);
    cout << *(p + n) << " "; 
}
 
 
template <class T, size_t size>
T * Ex<T, size> :: get(void) {
    return p;
}
 
#endif
и перегруженный оператор = в моем шаблоне:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template <class T, size_t size>
Array<T, size> & Array<T, size> :: operator = (const Array<T, size> &arrayForAssign) {
    if (this != &arrayForAssign) {
        Ex<T, 5> obj(arrayForAssign.currentSize);
        for (size_t i = 0; i < arrayForAssign.currentSize; i++) {
            obj.init(arrayForAssign.aPtr[i], i);
        }       
        delete [] aPtr;
        aPtr = obj.get();
        currentSize = arrayForAssign.currentSize;
        maxSize = arrayForAssign.maxSize;
 
    }
    return *this;
}
подправьте пож-та и подскажите, где деструктор вызывать
 
Текущее время: 17:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru