Куда будет происходить запись?

Тема в разделе "Delphi - FAQ", создана пользователем -, 26 ноя 2005.

Статус темы:
Закрыта.
  1. Гость

    Репутация:
    0
    Вот такой код
    FillChar(data.FArray,xcells*ycells,0);
    Куда произойдет запись xcells*ycells нолей?
     
  2. Barmutik

    Barmutik Гость

    Репутация:
    0
    Начнёт с Data.FArray ... после того как заполнит размер.. полезет в память... в лучшем случае потрёт значения .. в худшем случае всё упадёт ..

    Да и вообще с FillChar надо быть осторожным .. особенно если в структурах есть строки ...
     
  3. Гость

    Репутация:
    0
    так, я неправильно выразился, естественно, вы меня неправильно поняли
    FArray єто не строка, а указатель на массив
    type PBoolArray=^TboolArray;
    TBoolArray=array[0..MaxInt-1] of boolean;
    Вот так

    А вопрос таков
    если я напишу вот так
    GetMem(Farray,100);
    FillChar(FArray,100,0);
    и Вот так:
    GetMem(Farray,100);
    FillChar(FArray^,100,0);
    Во втором случае запись будет происходить с начала массива(элемента [0])
    А в первом?
     
  4. Barmutik

    Barmutik Гость

    Репутация:
    0
    Во втором случае вы начинаете заполнять начиная с адреса в переменной FArray

    А в первом случае Вы просто потрёте 4 байта указателя FArray и 96 байтов дальше от этой переменной в памяти... последствия сами поинмаете какие будут ..


    З.Ы: Оригинальный способ для массива булеанов B)
     
  5. Гость

    Репутация:
    0
    B) Спасибо за информацию :) ;) ;) ;)
     
  6. Barmutik

    Barmutik Гость

    Репутация:
    0
    Удачи! B)
     
Загрузка...
Похожие Темы - Куда будет происходить
  1. Strell

    Проблема Баракуда

    Strell, 23 сен 2017, в разделе: Hardware
    Ответов:
    23
    Просмотров:
    338
  2. ALXIMIKS
    Ответов:
    6
    Просмотров:
    475
  3. DarkyHere
    Ответов:
    4
    Просмотров:
    667
  4. sologub
    Ответов:
    1
    Просмотров:
    1.007
  5. Shandrik
    Ответов:
    8
    Просмотров:
    794
Статус темы:
Закрыта.

Поделиться этой страницей