Форум программистов, компьютерный форум, киберфорум
Наши страницы

Впадаю в страшную рекурсию... еще вопрос по указателям - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Простая игра http://www.cyberforum.ru/cpp-beginners/thread16158.html
Скиньте мне в файле ворда какую то простую игру в С++. Пожалуйста:'(
C++ Количество слов в файле! Как реализовать цикл по подсчёту кол-ва слов в файле?:help: http://www.cyberforum.ru/cpp-beginners/thread16145.html
C++ qsort
читал, что с помощю QSORT можно упорядочить масив, но не пишет как. помогите!!
Работа с указателями в объектах и без них, помогите разобраться C++
Значит так! Есть 4 указателя - 2 из них описанны в классе, 2 глобально. В классе есть конструктор, который выделяет место под переменную первого указателя. и присваивает адрес, на который...
C++ Ошибка в работе с классом, помогите понять в чём http://www.cyberforum.ru/cpp-beginners/thread16122.html
Выдаваемая ошибка при запуске этого безобразия: Необработанное исключение в "0x77665325" в "Sirst.exe": 0xC00000FD: Stack overflow. Программа в идеале имитирует работу сортировочного Т моста,...
C++ Проблема: создаются лишние элементы в бинарном дереве Вот такой код: #include <iostream> using namespace std; class Node { public: подробнее

Показать сообщение отдельно
Xentar
Of Wolf and Man
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,778

Впадаю в страшную рекурсию... еще вопрос по указателям - C++

17.11.2008, 17:31. Просмотров 874. Ответов 8
Метки (Все метки)

Почему в рекурсию? Начинаю разбирать код на С. и понимаю что я чего то не знаю. - начинаю разбираться как с этим работать, как понимаю что мне еще что то надо знать - вот так ухожу вдаль от изначальной проблемы

Вопрос не нашел на просторах инета, нашел только что написал изначально не правильно, хотя работало ( хоть не так как надо ), а потом написал правильно, но тоже работало (хотя тоже не так как надо).

Создаю я массив переменных в объекте, через указатель дальше присваиваю ему какие то значения, потом пытаюсь их изменить, потом пытаюсь их считать.

При попытке изменить значения происходит вылет из программы
Код
class cArray{
public:
        char    *ptr;
        cArray(void){ptr=new char[1000000];}
        ~cArray(){delete[]ptr;}
        cArray( const cArray &a ){
                ptr = new char [1000000];
                memcpy( ptr , a.ptr , 1000000 );
                printf("%s","конструктор копий");
        }
        cArray  operator=( cArray & a ){
                ptr = new char [1000000];
                memcpy( ptr , a.ptr , 1000000 );
                printf("%s","оператор присваивания");
                return( *this );
        }
};

cArray a;

int main () {
    [COLOR=Red]a.ptr="fuтk"[/COLOR];

/* [COLOR=Green]a.ptr[0]=140;
    a.ptr[1]=141;
    a.ptr[2]=142;
    a.ptr[3]=143;[/COLOR] */
    
/*  [COLOR=DarkOrange]*(a.ptr+1)=100;[/COLOR] */
    
   
    [COLOR=Blue]printf("%c\n",*(a.ptr+1));
    [/COLOR][COLOR=Blue]printf("addres of array %p\n",a.ptr);[/COLOR]
   [COLOR=Blue] printf("%c\n%c\n%c\n%c\n",a.ptr[0],a.ptr[1],a.ptr[2],a.ptr[3]);[/COLOR]
    
    system("pause");
}
На перегруженный конструктор не смотреть - это то с чем я сейчас разбираюсь.

Красным
выделенно то как я заполняю массив.
Синим выделен вывод массива, причем оба метода работают.
Зеленым и Желтым выделены изменения вносимые в массив, выполнены разными способами (моим и правильным) и при использовании с Красным методом заполнения массива - не работают, хотя друг с другом ладят.

Вопрос № РАЗ - можно ли заполнять и читать массивы моим Зеленым методом, и чем отличается от правильного Желтого метода ? Чем это черевато ?

Вопрос № ДВА - почему они не работают вместе с красным методом изменения массива ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.