Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3

Обнуление указателя

20.10.2014, 15:45. Показов 2843. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Ребята, подскажите, по такому вопросу. Делаю консольное приложение вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <tchar.h>
#include <stdio.h>
#include <vcl.h>
#include <lmaccess.h>
#include <lm.h>
 
 
#pragma hdrstop
#pragma argsused
 
 
WideString TargetAcc = L"User";
int _tmain(int argc, _TCHAR* argv[])
{
 
 bool amh = false;
 LPUSER_INFO_3  un = NULL;
 (LPBYTE *)un = NULL;
 DWORD dwRead = 0;
 DWORD dwTotal = 0;
 NetUserEnum( NULL, 3, FILTER_NORMAL_ACCOUNT,(LPBYTE *)&un, (DWORD)-1, &dwRead, &dwTotal, NULL);
 
// и т.д 
 
return 0;
}
Так вот в 6 билдере компилирует хорошо и работает, а вот в XE4 почему-то вылетает ошибка при компиляции на строке (LPBYTE *)un = NULL; Ошибка Lvalue Required. Подскажите как исправить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.10.2014, 15:45
Ответы с готовыми решениями:

обнуление AnsiString
Всем привет! Что-то я столкнулся с проблемой при обнуление AnsiString есть такое AnsiString Power; memset(Power, 0,...

Обнуление структуры
Такой вопросик, есть массив структур из 8 , например, он объявляется, потом в него пишутся данные, потом передаются куда-то, после этого...

Обнуление массива
Есть три массива: AnsiString Q; AnsiString A; int R; И мне их нужно обнулить. Что бы при повторном обращении в них не было...

10
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.10.2014, 18:19

Не по теме:

Итак на 6 году провождении на форуме, мы наконец-то добрались до создания консольных приложений :D, неужели ?



Добавлено через 3 минуты
Что за конструкция такая
C++
1
(LPBYTE *)un = NULL;
я чет тоже не соображу.

Добавлено через 3 минуты
Смотрим в MSDN и обрати необходимость освобождения памяти NetApiBufferFree();
0
 Аватар для kodv
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
21.10.2014, 04:38
Цитата Сообщение от Sasha Посмотреть сообщение
Подскажите как исправить?
Убрать (LPBYTE *). Если сами писали код, то расскажите, с какой целью вы туда воткнули этот (LPBYTE *)? Это неправильная запись, MSVS2010 подобный код также не пропускает. Да и выглядит эта запись абсурдно - обычно RValue к типу LValue приводят, а не наборот.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
23.10.2014, 15:08
Мысли вслух:
LPUSER_INFO_3 - это Long Pointeer User...
Значит
C++
typedef USER_INFO_3** LPUSER_INFO_3;
Поэтому
C++
17
 LPUSER_INFO_3  un = NULL;
просто зануление указателя.
А вот
C++
18
 (LPBYTE *)un = NULL;
непонятно.
Занулить по этому указателю около sizeof(LPBYTE) байт?

Sasha, какова задумка-то была изначальная?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
23.10.2014, 15:11  [ТС]
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Sasha, какова задумка-то была изначальная?
Этот код делался для 6 билдера не мной там работало, потом я перешёл на XE4 тут начало давать ошибки на этой строке
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
23.10.2014, 15:19
Sasha, единственная мысль у меня это раз в семнадцатой строке создается указатель на указатель и он зануляется, то в восемнадцатой строке зануляется тот, предыдущей вложенности, указатель.
Попробуйте расковырять LPUSER_INFO_3 и посмотреть что там внутри.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
23.10.2014, 15:25  [ТС]
Я закоментил эту строку и компиляция произошла успешно
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.10.2014, 15:28
Цитата Сообщение от SatanaXIII Посмотреть сообщение
единственная мысль у меня это раз в семнадцатой строке создается указатель на указатель и он зануляется, то в восемнадцатой строке зануляется тот, предыдущей вложенности, указатель.
Чего? Если указатель обнулен то он никуда не указывает, нет никакого вложенного указателя ибо нет объекта.
Более того объект создается при вызове ф-ции (возвращается).
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
23.10.2014, 15:30
Sasha, факт. Но где гарантии, что где-нибудь в коде нет проверки именно этого указателя на равенство нулю. В случае провала которой программа падает и наступает смерть?


Цитата Сообщение от Avazart Посмотреть сообщение
Чего?
Занулите ppi:
C++
1
2
3
int i = 666;
int *pi = &i;
int **ppi = &pi;
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
23.10.2014, 15:34  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
А где гарантии что тот кто писал это код в bcb не курил траву запивая водкой?

Не по теме:

Avazart, я не курю и не пью вообще поэтому я сразу отпадаю :)


В любом случае спасибо за разъяснение
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.10.2014, 15:35
Если
C++
1
int **ppi = NULL;
Безсмыслено что либо проверять.

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Sasha Посмотреть сообщение
Avazart, я не курю и не пью вообще поэтому я сразу отпадаю
Значит вам не разобраться с этим кодом вероятно, покупайте бутылку и зовите того кто писал )

Но вероятно лучше, сразу послать это код в мусорку, и написать свой руководствуясь MSDN и здравым смыслом, а не обкуром и похмельем.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.10.2014, 15:35
Помогаю со студенческими работами здесь

Обнуление AnsiString
Доброго всем времени суток. Помогите понять/разобраться как так происходит. Есть собственный класс A для работы с ini файлом со...

Обнуление массива
struct TWayBits{ String way; String positions; int weight; }; void __fastcall...

Обнуление Form
Не могу найти как обновить форму. Вот есть например у меня программа тестов, нажимаю в меню пройти тест, он открывает мне форму с тестом, я...

Полное обнуление формы
Здравствуйте! Наткнулся на не приятную штуку. К примеру у меня в билдере есть несколько форм. Поработав с определенной формой я закрываю её...

Обнуление динамического массива
Есть какой-нибудь хитрый способ обнулить динамический массив? Кроме циклов?)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru