t3st3r
написал 12 декабря 2006 года в 18:33 (982 просмотра)
Ведет себя
неопределенно; открыл 11 тем в форуме, оставил 14 комментариев на сайте.
Hi2All, кто может объяснить…
LPTSTR lpszCompName, lpszUserName; DWORD cchBuff = 256;
TCHAR tchBuffer[100]; lpszUserName = tchBuffer; // вот здесь зачем присваивать неинициализированную переменную?
lpszCompName = tchBuffer; // и здесь?
Последние комментарии
-
OlegL, 17 декабря 2023 года в 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
DevOps as a Service from Palark
24/7 SRE & DevOps service to cover all your Kubernetes needs.

LPTSTR — это обычно указатель, а он должен на что-то реальное указывать.
указывает на char массив. штука вполне себе определенная.
Она инициализирована. Почувствуй разницу между tchBuffer и *tchBuffer.
Если не чувствуешь — гоу читать книжки.
Берем Кернигана, читаем: «Имя массива является синонимом местоположения его первого элемента….», думаем…
В данном случае, lpszUserName LPTSTR — ИМХО указатель на TCHAR. таким образом ИМХО все правильно. правда другой вопрос в том, что находится в этом массиве на момент его инициализации… там могут быть нули и потом это используется для проверки… но может быть и мусор. Я не помню как себя ведет компилятор при инициализации массивов.
В массиве мусор, часто это нули. Забивать массивы нулями по умолчанию слишком не эффективно, если нужны нули, то надо делать memset.