-
записать элемент массива через указатель
Есть указатель на массив строк. Как правильно записать присваивание строки i-тому элементу массива через этот указатель?
Что-то вроде
Pointer^[i] := 'строка';
не работает - меняется значение самого указателя.
-
a:array [0..100] of byte;
pa: pointer to byte;
pa:=ADR(a[0]); или ADR(a);
pa:=pa+i;
pa^:=28; //запись в элемент i.
Для строк надо применять функции копирования либо строк, либо массивов памяти.
-
Спасибо, туплю.. Сделал без функций копирования (хотя, по аналогии):
pStrA := pStrArr + BYTE_TO_DWORD(rcvIndex) * 201; (* длина строки +1 *)
pStrA^ := 'строка';
-
BYTE_TO_DWORD(rcvIndex) * 201; (* длина строки +1 *) -- тут кроются грабли.
-
какие? я так понимаю, что нужно иметь в виду, что если строки String(200), то в памяти они занимают 201 байт, и то, что указатели приращиваются только побайтно, а не в соответствии с тем типом, на который они указывают. и то, и другое я выполняю.
-
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума