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

Копирование массива (строки) в методе класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Поиск слова в файле http://www.cyberforum.ru/cpp-beginners/thread806146.html
Звучит просто, а на деле... Такая простая операция и... Есть варианты? #include <iostream> #include <string> #include <stdio.h> using namespace std; int main () { setlocale (LC_ALL,...
C++ Подскажите, почему не работает strcpy_s() Вот код char *pcStr = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22" pUAgent = new char; strcpy_s(pUAgent, strlen(pcStr),... http://www.cyberforum.ru/cpp-beginners/thread806125.html
C++ С++ Конструктор копий. Функция, работающая с объектами
Конструктор копий должен работать в след. ситуациях: 1) В объявлении объекта, когда один объект используется для инициализации другого. 2) Объект передается в ф-ю в качестве параметра 3) В...
Тормозит программа C++
Добрый вечер. В чем может быть загвоздка? Пишу тетрис (консольный), на работе он летает а дома тормозит. Хочу дописать... Железо почти одинаковое...
C++ Нужна практика http://www.cyberforum.ru/cpp-beginners/thread806115.html
Приветствую всех. :) Не ругайтесь сильно, знаю что подобных тем было созданно уйма. Подскажите пожалуйста как мне поступить. Я ещё не учусь в выше, язык изучаю сам дома, сейчас читаю паралельно пару...
C++ Библиотека libtiff на с++ Добрый вечер. У меня следующие проблемы. Искал библиотеку libtiff (tiff.h / tiffio.h) на с++ для работы с файлами данного формата. Но ничего дельного не нашел ни на наших, ни на иностранных... подробнее

Показать сообщение отдельно
AceOfSpades
44 / 43 / 3
Регистрация: 14.08.2012
Сообщений: 247

Копирование массива (строки) в методе класса - C++

12.03.2013, 00:26. Просмотров 480. Ответов 5
Метки (Все метки)

У меня есть класс, поле которого массив символов char*
В конструкторе копий требуется копировать это поле для нового объекта.

Я это делаю так:

C++
1
2
3
4
5
6
7
8
9
char* Student::ArrayCopy(char* arr)
{
    if (arr == NULL)
        return NULL;
 
    int length = _msize(arr);
 
    return (char*)memcpy(new char[length], arr, sizeof(char));
}
Но если передавать константную строку, то возникает ошибка и я даже не могу отловить исключение.
Функцию strlen использовал, но она даёт неправильный резульат:
если была выделена память под массив и в массив ничего не заносилось, то она неправильно возвращает длину.
char* arr = (char*)malloc(10); //strlen(arr) мне возвращает 24, а _msize - 10.
char* name = "Alex"; //strlen(name) возвращает 4, а _msize - выдаёт ошибку повреждения кучи.
Язык С++ учу совсем недавно и мало чего пока знаю. Как решить эту проблему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru