Просблема с типами данных
А есть ли такое в Васика, а именно указатель на тип char?
Спасибо.
Тока в С++...
Не...нету;)
Тока в С++...
Тогда должен быть какой то способ это раелизовать...
В C++ есть такой тип как указатель..
А есть ли такое в Васика, а именно указатель на тип char?
Спасибо.
Типа такого нет, в VB нельзя явно работать с памятью, но например объектн. переменные все являются указателями (их называют - неявными).
Что касается строк в VB, то как пишет тов. Гетц: даже если вы используете ключевое слово ByVal, не думайте, что VBA передаст строку по значению, то есть поместит ее прямо в стек. Для строк это просто невозможно - они всегда передаются по ссылке. ByVal будет означать для строк передачу функции параметра LPSTR, его отсутствие - передачу параметра BSTR
Что тебе конкретно надо, для чего понадобился указатель?
В качестве послесловия: у Microsoft есть две НЕДОКУМЕНТИРОВАННЫЕ функции, возращающие адрес объектных и станд. переменных в памяти. Подробная статья илюстрирующая это: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw32dev/html/ora_apiprog6_topic1.asp
В C++ есть такой тип как указатель..
А есть ли такое в Васика, а именно указатель на тип char?
Спасибо.
Что есть указатель? не более чем дольшое целое число. Что хранится в указателе? адрес какой-то. Большие числа в Бэйсике есть, адрес можно получить через AddressOf - по-моему он работает как для адресов процедур, так и для переменных - точно не помню, надо МСДН смотреть. Однако, такое понятие как пустые указатели, вроде не существует. Или указатели просто на память, а не на адрес объекта. Если сильно приперло - можно свой класс создать - указатели.
Что есть указатель? не более чем дольшое целое число. Что хранится в указателе? адрес какой-то. Большие числа в Бэйсике есть, адрес можно получить через AddressOf - по-моему он работает как для адресов процедур, так и для переменных - точно не помню, надо МСДН смотреть. Однако, такое понятие как пустые указатели, вроде не существует. Или указатели просто на память, а не на адрес объекта. Если сильно приперло - можно свой класс создать - указатели.
1. Через AddressOf - ты можешь получить адрес ТОЛЬКО Sub или Function объявленной как Public в Станд. модуле - так что это не поможет.
2. Для извлечение адреса переменных есть 3 недокументированные ф-ции: ObjPtr, VarPtr, StrPtr - они возвращают адреса начала объектов, но с некоторыми тонкостями: strptr показывает на расположение первого символа строки, хотя до него еще идет 4 байта с длиной строки; VarPtr - по умолч. выводит адрес начала структуры, хотя можно вывести и адрес конкретного поля структуры VarPtr MyType.MyField и т.д.
3. Ну массив/коллекцию указателей или как их принято в VB называть pointer (не тянут они на указатели) ты конечно можешь сбацать - просто массив чисел Long, но это будет парадия на указатели в том смысле, что в Си над указателями ты можешь делать что хочешь, спокойно передвигать его и указывать на любое место памяти - твой произвол и большая ответсвенность.
Ну вообщем это все отвлеченные разговоры, я так думаю, что у Kashuk какая-то конкретная проблема...