30.11.2010, 20:41 | #12 |
Bannеd
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
|
|
30.11.2010, 20:42 | #13 | |
Эксперт
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 244
|
Цитата:
char x[255]="asdfghjkasdf"; char z; z=x[0]; cout<<z; Добавлено через 41 секунду А что тогда будет на месте z[1]??? Мусор. Ещё хуже если там случайно окажется 0 - тогда программа может иногда работать правильно, иногда неправильно (на удачу).
__________________
Самый удобный Хостинг (в т.ч. сейчас - бесплатное полугодовое тестирование хостинга Node.JS) Последний раз редактировалось eresik; 30.11.2010 в 20:43. Причина: Добавлено сообщение |
|
30.11.2010, 20:43 | #14 |
Bannеd
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
|
|
30.11.2010, 20:50 | #15 |
Эксперт
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 244
|
Вспоминаются студенческие годы и ситуации, когда "дома работает, а когда сдаёшь - не работает", как раз из-за подобных случайностей
Да, ещё, Русская мафия - смотри в сторону stl для c++, туда входит полноценный строковый тип данных string (класс или шаблон, уж не помню). Работать со строками удобнее и безопаснее через него. Добавлено через 2 минуты Абсолютно равноценно strcpy(z,x); т.к. конструкция &z[0] - означает "адрес нулевого элемента массива", а z - это и есть адрес нулевого элемента массива (указатель)
__________________
Самый удобный Хостинг (в т.ч. сейчас - бесплатное полугодовое тестирование хостинга Node.JS) Последний раз редактировалось eresik; 30.11.2010 в 20:51. Причина: Добавлено сообщение |
30.11.2010, 20:55 | #17 |
Bannеd
Регистрация: 17.09.2008
Сообщений: 6,446
Вес репутации: 370
|
|
30.11.2010, 21:03 | #18 | ||
Мафиози
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 244
|
Цитата:
Добавлено через 2 минуты Цитата:
Добавлено через 30 секунд всю строку копирует Добавлено через 37 секунд я ставлю, но это в данном случае ни на что не влияет
__________________
Последний раз редактировалось Русская мафия; 30.11.2010 в 21:03. Причина: Добавлено сообщение |
||
30.11.2010, 21:05 | #19 |
Эксперт
Регистрация: 12.12.2009
Адрес: Ростов-на-Дону
Сообщений: 1,537
Вес репутации: 244
|
Неправда, копирует один символ (точнее байт).
Как вы проверяете что скопировалась вся строка? cout<<z; ??? это как раз тот случай "а хрен его знает что там на месте z[1] если z[0]=x[0];, то надо ещё добавлять z[1]=0; (конец строки) или выводить cout<<z[0];
__________________
Самый удобный Хостинг (в т.ч. сейчас - бесплатное полугодовое тестирование хостинга Node.JS) |
30.11.2010, 21:09 | #20 |
Мафиози
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 244
|
eresik,я добавил в конец '\0'
а вывожу cout<<z; и выводится вся строка
__________________
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопросы по php | Русская мафия | Разработка и сопровождение сайтов | 312 | 26.02.2011 10:36 |
Вопросы по АГС | artoff | Яндекс | 11 | 04.08.2010 09:26 |
Вопросы | tbc | Вопросы от новичков | 1 | 08.06.2010 08:14 |
Вопросы | Astaldo | Финансовые и юридические вопросы | 8 | 13.04.2010 13:50 |
Ещё вопросы по ИП от ВМ | Turbo | Финансовые и юридические вопросы | 1 | 14.10.2008 12:00 |
Часовой пояс GMT +3, время: 21:26.