|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.09.2012, 00:58 | #1 |
Пользователь
Регистрация: 29.04.2012
Сообщений: 36
|
ненавистные строки
есть класс Student
в нём определены методы на задание имени, фамилии, отчества и т.д. сказали использовать не string строки, а char* (указатели на строки - мой камень преткновения ) реализация кода, покажу только нужное: Код:
выдаёт ошибку переполнения памяти что ли, после ввода фамилии подскажите,пожалуйста, как решить проблему |
06.09.2012, 02:44 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Не забывать про терминантный 0
Не забывать про выделение памяти под используемые переменные, например, surname Использовать strncpy и подобные с контролем размера буфера. |
06.09.2012, 09:43 | #3 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Kaela
Да, для неокрепших телом и духом юных адептов C++ "старые добрые" строки в Си-стиле - это кошмар и ужОс (((((Ж char *str1 = new char[15]; как ты думаешь, чему будет равно это выражение? sizeof(str1) strcpy(surname, str); память кто будет выделять, Пушкин? сказали использовать не string строки, а char* А вообще, скажи преподу, что chsr* в C++ используют только ламеры, а чОткие патсаны юзают std::string o_O.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
Последний раз редактировалось Rififi; 06.09.2012 в 09:46. |
06.09.2012, 11:11 | #4 |
Пользователь
Регистрация: 29.04.2012
Сообщений: 36
|
p51x
так терминантный ноль оно же самостоятельно подставляет и при создании строки, и при использовании функций strcpy и strncpy а память под 3 приватные переменные char* мне надо будет выделить в методах inputSurname и т.д.? или может лучше в конструкторе? следовательно освобождать память надо будет в деструкторе в обоих случаях? Rififi значение sizeof(str) будет равно 4, ведь это же указатель, позабывал всё про выделение памяти тут strcpy(surname, str); вроде разобрался вообще я преподу так и сказал, что нету смысла с указателями на char голову морочить, а она у нас молодая, видимо, сама не понимает, что получится слишком много ошибок, которые она сама не будет в состоянии объяснить ну да это дело преподавателя |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки | Алексей_2012 | Помощь студентам | 1 | 05.04.2012 11:26 |
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности | kris__tina | БД в Delphi | 1 | 09.06.2011 15:31 |
Создание пустой строки и копирование в неё содержимое предыдущей строки | Gvaridos | Microsoft Office Excel | 2 | 29.10.2010 13:33 |
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. | Александе еть я | Общие вопросы C/C++ | 5 | 13.04.2010 20:54 |
Перенести символа с начала строки в место перед запятой этой же строки. | Zhiltsov | Microsoft Office Excel | 4 | 05.06.2009 13:10 |