Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > никак не пойму ошибку с дин. памятью...


Автор: VasNN 24.12.2006, 02:03
Доброый вечер!
У меня проблема:
Код

#include <iostream>
using namespace std;

void main(void){
    char* pcTest;
    int len = 2;
    pcTest = new char[len];
    //pcTest[0] = '1';
    //pcTest[1] = '2';
    cout << "Size: " << strlen(pcTest);
    //cout << " Value: " << pcTest;
}

Почему, если я создаю два объекта типа char, у меня столько памяти выделяется?
Никак не догоняю...

Автор: Dude03 24.12.2006, 02:11
нет, просто strlen линейно просматривает память до нулевого байта и так определяет длину строки. А в твоем случае где будет нулевой байт? smile 
внимательней-с, господа, внимательней-с smile 

Автор: Xenon 24.12.2006, 02:11
Нужно выделять +1 один символ на "\0". len должно быть 3.

Автор: VasNN 24.12.2006, 02:28
Спасибо большое! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)