t3st3r
написал 12 декабря 2006 года в 18:33 (902 просмотра)
Ведет себя
неопределенно; открыл 11 тем в форуме, оставил 14 комментариев на сайте.
Hi2All, кто может объяснить…
LPTSTR lpszCompName, lpszUserName; DWORD cchBuff = 256;
TCHAR tchBuffer[100]; lpszUserName = tchBuffer; // вот здесь зачем присваивать неинициализированную переменную?
lpszCompName = tchBuffer; // и здесь?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
LPTSTR — это обычно указатель, а он должен на что-то реальное указывать.
указывает на char массив. штука вполне себе определенная.
Она инициализирована. Почувствуй разницу между tchBuffer и *tchBuffer.
Если не чувствуешь — гоу читать книжки.
Берем Кернигана, читаем: «Имя массива является синонимом местоположения его первого элемента….», думаем…
В данном случае, lpszUserName LPTSTR — ИМХО указатель на TCHAR. таким образом ИМХО все правильно. правда другой вопрос в том, что находится в этом массиве на момент его инициализации… там могут быть нули и потом это используется для проверки… но может быть и мусор. Я не помню как себя ведет компилятор при инициализации массивов.
В массиве мусор, часто это нули. Забивать массивы нулями по умолчанию слишком не эффективно, если нужны нули, то надо делать memset.