0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 64
|
||||||
1 | ||||||
Изменение значения статической переменной04.08.2010, 00:12. Показов 5547. Ответов 19
Метки нет (Все метки)
не дает =\
0
|
04.08.2010, 00:12 | |
Ответы с готовыми решениями:
19
Объявление статической переменной и статической функции в классе Изменение значения переменной во время исполнения Изменение значения переменной через указатель Изменение значения переменной через заданное время |
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
04.08.2010, 00:14 | 2 | ||||||||||
Собсна..
Изменяем первый эл-т массива.
0
|
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 64
|
|||||||||||
04.08.2010, 00:21 [ТС] | 3 | ||||||||||
надо полностью все чары убить в массиве, лучше
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
||||||
04.08.2010, 00:24 | 4 | |||||
Owyn, если ты хочешь, чтобы все элементы массива равнялись нулю:
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
04.08.2010, 00:25 | 5 | |||||
CyBOSSeR, А можно ведь по сути просто char[256]={0}; Или с чаром такое не прокатит? По умолчанию, все элементы становятся нулем вроде как.
Вполне достойно отработало:
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
||||||
04.08.2010, 00:27 | 6 | |||||
2
|
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 64
|
|
04.08.2010, 00:27 [ТС] | 7 |
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
04.08.2010, 00:28 | 8 |
Lavroff, при инициализации можно и так. Вообще говоря, глобальные статические переменные инициализируются нулем по умолчанию.
1
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
04.08.2010, 00:29 | 9 |
Ещё как прокатит. Но неплохо иметь способ обнулять буфер по мере надобности, а не только при инициализации...
1
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
04.08.2010, 00:31 | 10 |
Сегодня ты используешь ANSI строки (один байт на символ), а завтра перейдешь на UNICODE (два байта на символ) и придется тебе все подобные допущения отлавливать. Деление на размер первого элемента не повредит.
1
|
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 64
|
|
04.08.2010, 00:36 [ТС] | 11 |
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
04.08.2010, 00:37 | 12 |
Owyn, Одно дело отличить и писать заново) Другое дело просто поменять char на wchar)
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|||||||||||
04.08.2010, 00:50 | 14 | ||||||||||
Хотя нет, я не прав, для функции memset будет беспроблемной конструкция вида:
А вообще, я за вариант easybudda, только чуть поправленный для Windows:
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
04.08.2010, 01:47 | 15 |
Ну я вообще за то, чтобы размеры массивов в отдельной переменной или именованной константе хранить. Так в первую очередь самому нагляднее...
0
|
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 64
|
|
04.08.2010, 11:37 [ТС] | 16 |
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
04.08.2010, 12:12 | 17 |
Owyn, смотря как посмотреть. С одной стороны memset будет быстрее. С другой строны нам нужно заполнить строку нулевыми символами, которые записываются как '\0' для обычных символов и L'\0' для широких, поэтому с идеологической точки зрения std::fill_n будет предпочтительнее.
0
|
0 / 0 / 0
Регистрация: 28.05.2009
Сообщений: 64
|
|
04.08.2010, 12:43 [ТС] | 18 |
разве
'\0' != 0 != 0x00 ?
0
|
2347 / 1720 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
04.08.2010, 13:44 | 19 |
Owyn, просмотрел по этому вопросу стандарт, в стандарте явно не оговорено какой код имеет символ терминатор (может плохо смотрел). А если стандарт молчит, то обычно это означает, что реализация отдана на откуп разработчикам компилятора. Поэтому с полной уверенностью утверждать, что терминатор в представлении целого числа является нулем нельзя. Да и вообще для представления символов постарайся использовать только символьные литералы ('a', '2', 'Z' и т.п.).
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
05.08.2010, 03:57 | 20 | |||||
'\0' - это восьмеричный код символа
0
|
05.08.2010, 03:57 | |
05.08.2010, 03:57 | |
Помогаю со студенческими работами здесь
20
Наследование статической переменной Ошибка в объявлении статической переменной Функция с использованием статической переменной Неожиданное значение в статической переменной Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |