Инкрементирование указателя структуры - C#

Узнай цену своей работы

Формулировка задачи:

Мне не понятен принцип инкрементирования указателя структуры. У Шилдта объясняется как изменяются адреса у int (на 4 байта) и double (на 8), а вот про структуры не увидел. Вот пример кода:
using System;
struct my
{
    int a;
    double b;
    int c;
    int d;
}
class m
{
    unsafe static void Main()
    {
        my znach;
        my* uki = &znach;
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine((int)uki);
            uki++;
        }
    }
}
В итоге адрес на каждом шаге изменяется на 24. А вот, например, если заменить
int d
на
double d
, то уже на 32. Разъясните, пожалуйста.

Решение задачи: «Инкрементирование указателя структуры»

textual
Листинг программы
struct MyStruct
{
    public uint A;  // 4 байта
                    // +4 байта для выравнивания ulong
    public ulong B; // 8 байт
    public uint C;  // 4 байта
    public uint D;  // 4 байта
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.667 из 5
Похожие ответы