Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
54 / 53 / 5
Регистрация: 14.08.2012
Сообщений: 252
1

Присвоить некоторое значение нетипизированному указателю

02.05.2014, 00:59. Показов 810. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем нужно некоторый массив байт записать по адресу в памяти.
Делаю так:
Pascal
1
2
GetMem(p, sizeof(integer)*10);
p^:=arr; //arr:array[1..10] of integer;
Но компилятор выдает ошибку, что ожидается untyped.

Добавлено через 2 часа 6 минут
В общем разобрался. Сделать так нельзя, наиболее оптимальный способ это присвоить адрес массива указателю, а выделять память вообще не нужно.

p:=@arr; //arr:array[1..n] of integer;

Если требуется работать с открытыми массивами, то делать так:

p:=pointer(arr); //arr:array of integer;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2014, 00:59
Ответы с готовыми решениями:

Присвоить указателю, значение
Я новичок в программирование, прошу не пинать. У меня есть указатель void *result; и есть...

Присвоить указателю значение
Подскажите, плз, как правильно присвоить указателю значение. Вставил строку (№14), а компилятор...

Указателю void присвоить значение
Добавляю в TreeView узлы для дерева и там есть такое поле, как Data. Оно имеет тип void *. Я хочу в...

Присвоить указателю значение, пример из интернета
Добрый вечер. В интернете находил парочку таких примеров: 1.) int *x; cout<<*x; *x=100; ...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
02.05.2014, 01:05 2
Pascal
1
2
3
4
5
6
7
8
9
10
type
  PT = ^T;
  T = array[1 .. 10] of integer;
var
  arr : T;
  p : pointer;
begin
  GetMem(p, sizeof(integer)*10);
  PT(p)^ := arr;
end.
?

Зачем это тебе, в FPC никто так уже не выделяет память, есть нормальные динамические массивы, безо всяких этих Турбо-Паскалевских заморочек...
1
54 / 53 / 5
Регистрация: 14.08.2012
Сообщений: 252
02.05.2014, 01:34  [ТС] 3
Спасибо, очень помогли!

Цитата Сообщение от UI Посмотреть сообщение
Зачем это тебе, в FPC никто так уже не выделяет память

Я пытаюсь сделать что-то вроде универсального динамического списка. Нужно, чтобы список мог хранить любые типы данных.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
02.05.2014, 01:49 4
Список TFPGList из модуля FGL и так может хранить любые типа данных, какие попросишь. А TList - вообще хранит любой указатель. Так что прекращай заниматься велосипедостроением, просто почитай о готовых стандартных решениях...
0
02.05.2014, 01:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.05.2014, 01:49
Помогаю со студенческими работами здесь

Не получается присвоить значение указателю на функцию
В строке 26 говорит, что не может конвертировать тип. Что неправильно? #include "stdafx.h"...

Надо указателю на long int присвоить значение указателя на char
//есть указатель unsigned char* p_to_char = somthing; //и указатель unsigned long int*...

Как присвоить указателю значение другого указателя внутри процедуры?
Подскажите пожалуйста. Вот я хочу одному указателю присвоить значение другого указателя внутри...

ПРисвоить указателю нулевое значение- кк? с поммощщю каких знаков и действий?
Пожалуста, обьясните принцип. Такого присвоения.


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru