|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.03.2013, 03:26 | #1 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Не могу обратиться к i-той ячейке const char.
for moderators
Поменяйте название темы, пожалуйста. :-[ . Когда начал создавать тему, была одна ошибка, потом её поборол, вставил новый код, а название забыл поменять. Теперь траблы с обращением к памяти. Здравствуйте, владеющие тайными знаниями незнакомцы. Делаю по заданию из книги перевод из 10-ой в 16-ричную СС. Компилятор на делфи был поумнее, а я был потупее. Пришло время поумнеть, и сбросить с компилятора невыносимую ношу. На обозрение мой недокоТ: Код:
Access Violation опять вылезает . Прошу помощи у Вас, Гуру. Заранее благодарен. ( offtop: как-то непутево звучит это "Заранее благодарен".)
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 30.03.2013 в 03:31. |
30.03.2013, 09:41 | #2 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Ну, во-первых...
Код:
Код:
Код:
Код:
Код:
Код:
Последний раз редактировалось Stilet; 30.03.2013 в 12:14. |
30.03.2013, 12:07 | #3 | ||||
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Цитата:
Цитата:
Цитата:
Цитата:
Если помог, проси поставить минус. Будь оригинален!
|
||||
30.03.2013, 14:01 | #4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Ну, по коду тебе уже вроде всё отметили, добавлю по стилю.
если планируешь оставаться на уровне "студенческие поделки", то в принципе особо ничего менять не нужно. если в будущем собираешься так или иначе связываться с IT, сразу же избавляйся от этого убожества в виде транслита. cout<<"BBeDuTe B KaKy|-O CC nepeBoDuM\n"; Введите в каку??? LOL, хоть в шедевры заливай.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
30.03.2013, 14:48 | #5 | |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Цитата:
Код надо писать легко читаемый и понятный. У меня был знакомый, который везде и всюду использовал только switch(), даже когда можно было обойтись if(). Нравилось вот ему так. Но код выглядел ужасно... Рассматривай это просто как рекомендацию. Наверняка есть люди, которые швейцарскими часами забивают гвозди, потому что им так больше нравится... |
|
30.03.2013, 21:59 | #6 | |||
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Цитата:
Цитата:
Цитата:
Благодарю за ответы, отзывчивые незнакомцы.
Если помог, проси поставить минус. Будь оригинален!
|
|||
31.03.2013, 02:25 | #7 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Каким способом (функцией, директивой компилятора) присвоить переменной другую переменную, а не указатель на эту переменную?
Захотел избавиться от одной строки таким способом: Код:
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 31.03.2013 в 03:01. |
31.03.2013, 08:48 | #8 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Для догадливых и умеющих читать, ещё раз, про какую функцию там "вообще мало что написано"? Ты знаешь, даже в дельфях, при каком угодно строе и диалекте strncat не то же самое, что strncpy.
Твой последний вопрос - вообще полная фигня. Ты нарушил всю логику, а причину ищешь совсем в другом месте. В переменной i, у тебя содержится количество цифр числа (если её не трогать). Начинаешь ты записывать с первого числа (самого старшего). Поэтому, уменьшая её на 1 каждый раз, ты тем самым по-очереди сокращаешь длину строки на 1 и в результате получаешь пустую строку. Всё работает правильно, как запрограммировал. Ну, вот у тебя последовательные вызовы converta 1234 в 10-чное будут содержать { i = 2; nLen = 2; }, { i = 3; nLen = 3; }, { i = 4; nLen = 4; }, { i = 5; nLen = 5; }. Всё, значимая часть кончилась. И ты начинаешь сохранять старшую цифру числа. Куда? В result[4] = '1', а result[5] = '\0'; Теперь раскручивается стек: - result[3] = '2', а result[4] = '\0'; - result[2] = '3', а result[3] = '\0'; - result[1] = '4', а result[2] = '\0'; Т.е., к моменту вывода результата, твой result содержит - result[0] == '\0'; - result[1] == '\4'; - result[2] == '\0'; (затёртая '3') - result[3] == '\0'; (затёртая '2') - result[4] == '\0'; (затёртая '1') Последний раз редактировалось FataLL; 31.03.2013 в 10:39. Причина: Плохо как-то сказал... |
31.03.2013, 22:58 | #9 | |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Цитата:
Если помог, проси поставить минус. Будь оригинален!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как исправить ошибку invalid conversion from const char* to char | Ника К | Помощь студентам | 5 | 01.06.2012 00:13 |
С++ Преобразование const Char в const GUID | Decoy2k | Общие вопросы C/C++ | 9 | 07.02.2012 14:02 |
невозможно преобразовать 'const char' в 'char | triest | Помощь студентам | 1 | 10.12.2011 13:41 |
'unsigned char [512]' в 'const char *' | frommars | Visual C++ | 8 | 02.07.2011 13:37 |
преобразование типов char-const char | student101 | Помощь студентам | 8 | 01.12.2010 20:45 |