0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 8
|
||||||
1 | ||||||
в чем дело?27.03.2013, 12:48. Показов 1530. Ответов 21
Метки нет (Все метки)
может кто объяснит в чем дело?
просто заметил одну особенность, если temp <=8 символам (не считая нулевого в конце), то t выводит с двумя левыми символами в конце, если >8 символов, то всё выводит как надо
0
|
27.03.2013, 12:48 | |
Ответы с готовыми решениями:
21
В чем дело? В чём тут дело??? не пойму в чем дело getline() в чем дело |
Кактус
67 / 67 / 19
Регистрация: 23.05.2012
Сообщений: 342
|
|
27.03.2013, 12:51 | 3 |
Простите, что вы хотите, чтобы эта функция делала?
0
|
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 8
|
|
27.03.2013, 12:52 [ТС] | 4 |
оно понятно, просто интересно, почему если больше 8 символов, то все как надо работает
Добавлено через 50 секунд собственно говоря ничего.. так просто заметил случайно
0
|
Каратель
|
|
27.03.2013, 12:53 | 5 |
1
|
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 8
|
|
27.03.2013, 13:06 [ТС] | 7 |
В общем, вопрос получается не в том, почему это не работает, а в том почему это работает...
спасибо всем!! тема закрыта
0
|
Заблокирован
|
||||||
27.03.2013, 13:13 | 8 | |||||
demondy, Во!Вот тебе пример чтобы понял какую ерунду ты посчитал за истину
http://codepad.org/QMlrsEzA Output: - возможно код тебя отрезвит, не работает вообще. На пальцах В блоке p памяти на 8 символов + нуль-терминатор В блоке t с четырмя символами памяти под 4ри символа + нуль-терминатор Когда блок t большей длинны чем 8 символов, то копирование возможно. Скажем в t 9 символов + нуль терминатор - всё скопируется ок, а теперь в p подставь мою строку (char *)"String with length more than 10 symbols"; а в t оставь 9-ть, и погляди что будет. Ну что тут неясного?! Добавлено через 9 секунд - возможно код тебя отрезвит, не работает вообще! На пальцах В блоке p памяти на 8 символов + нуль-терминатор В блоке t с четырмя символами памяти под 4ри символа + нуль-терминатор Когда блок t большей длинны чем 8 символов, то копирование возможно: Скажем в t 9 символов + нуль терминатор, а в р - 8-мь + нуль терминатор - всё скопируется ок!А теперь в p подставь мою строку (char *)"String with length more than 10 symbols"; а в t оставь 9-ть, и погляди что будет. (Подсказка Segmentation fault) Ну что тут неясного?!
0
|
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 8
|
|
27.03.2013, 13:16 [ТС] | 9 |
у меня этот код работает
может мне нужно компилятор поменять BC++ 5.02 - еще со времен универа остался
0
|
Заблокирован
|
|
27.03.2013, 13:22 | 10 |
Не по теме: - Да в дебуге работает всё и даже ошибки! Скомпилируй релиз версию! Фуух ты мне напоминаешь меня в сааамом начале - "когда хоть кол на голове теши, вбил в себе в голову и пока на пузе не проползёшь никто дурь из головы не выбьет..." Дело не в том что работает в режиме Debug, дело в том что в реальном exe без try блоков, трассировок, которые любезно предоставляет нам дебуг - твой код упадёт с большой горы из-за Segmentation faul!!!Высказался я наконец-то! Добавлено через 2 минуты demondy, Линк на кодпад это линк на компилятор в стандрате который показывает как реально будет развиваться работа программы - так понятней почему код не работоспособен?
1
|
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 8
|
|
27.03.2013, 13:28 [ТС] | 11 |
ОК, ошибка понятна была изначально, просто думаю мало ли. Так делать не буду
про это не знал, спасибо за инфу.. СПАСИБО
0
|
Заблокирован
|
||||||
27.03.2013, 13:34 | 12 | |||||
- Ниже скриншот из VisualStudio 6.0 (компилятор остался у меня с института и выпущен аж в 99-году), вот смотри пошаговое прохождение
В добавок давай немножко модернезируем твой код (как видишь я ничего не менял) просто явно разнёс блоки и вылетит сей код на втоём компиляторе даже в Debug-е я уверен почти на 100% http://codepad.org/S77HSfWZ
0
|
|
27.03.2013, 13:37
#13
|
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
27.03.2013, 13:38 | 14 |
0
|
Заблокирован
|
|
27.03.2013, 13:38 | 15 |
demondy, тут смотри - сама коснтрукция
- вполне оправдана и работоспособна, но только надо чтобы блок р имел памяти не меньше чем блок temp - тогда всё будет гуд!Это я к тому что сам цикл юзать можешь, только заботься чтобы не было сигфолта и всё будет ок
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
27.03.2013, 13:42 | 16 |
ТСу срочно читать "хакинг. искусство эксплойта".
0
|
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 8
|
|
27.03.2013, 13:45 [ТС] | 17 |
Работает...
output: "String with length more than 10 symbols 10 symbols" Последний вопрос: "Если на кодепад выдает правильный output, а у меня не такой, то это значит что мой компилятор устарел?" Добавлено через 43 секунды Это понятно...
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
27.03.2013, 13:49 | 18 |
0
|
0 / 0 / 0
Регистрация: 27.03.2013
Сообщений: 8
|
|
27.03.2013, 13:50 [ТС] | 19 |
Последний вопрос: "Если на кодепад выдает правильный output, а у меня не такой, то это значит что мой компилятор устарел?"
0
|
Заблокирован
|
|
27.03.2013, 13:59 | 20 |
- твой компилятор выдаёт в режиме отладки или режиме Release? По поводу компилятора надо смотреть его суппорт, думаю для ВС 5.2 его можно отыскать в гугле
0
|
27.03.2013, 13:59 | |
27.03.2013, 13:59 | |
Помогаю со студенческими работами здесь
20
Пятиминутное дело!В чем ошибка? Ни как не разберусь в чем дело... не могу понять в чем дело небольшая ошибка в чем дело? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |