Я пытаюсь использовать новый, чтобы создать блок структур и использовать арифметику указателей, чтобы использовать их. Но как-то неожиданные результаты приходят - PullRequest
0 голосов
/ 15 июня 2019

Я пытаюсь использовать new, чтобы создать блок структур, и использовать арифметику указателей, чтобы использовать их. Но как-то неожиданные результаты приходят.

#include <iostream>
using namespace std;
struct node {
    int a;
    node* next;
};
void create()
{
    int i;
    node* ptr = new node[4];
    cout << sizeof(node) << "\n";
    for (i = 0; i < 4; i++) {
        (ptr + i)->a = i;
        (ptr + i)->next = NULL;
        cout << (ptr + i) << " ";
    }
}
int main()
{
    create();
}

вот вывод 8 0x1006d78 0x1006d80 0x1006d88 0x1006d90

так что он не увеличивается на 8 (размер узла) каждый раз, не понял почему?

...