Вопросы с ограниченным указателем

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

Законно ли определять вложенные ограниченные указатели следующим образом:

int* restrict a;
int* restrict b;


a = malloc(sizeof(int));


// b = a; <-- assignment here is illegal, needs to happen in child block
// *b = rand();


while(1)
{
    b = a;  // Is this legal?  Assuming 'b' is not modified outside the while() block
    *b = rand();
}

Допустимо ли выводить значение ограниченного указателя следующим образом:

int* restrict c;
int* restrict d;


c = malloc(sizeof(int*)*101);
d = c;


for(int i = 0; i < 100; i++)
{
    *d = i;
    d++;
}


c = d; // c is now set to the 101 element, is this legal assuming d isn't accessed?
*c = rand();

Спасибо! Эндрю

Ответы на вопрос(2)

Ваш ответ на вопрос