Вопросы с ограниченным указателем
Я немного запутался в правилах, касающихся ограниченных указателей. Может быть, кто-то может мне помочь.
Законно ли определять вложенные ограниченные указатели следующим образом:
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();
Спасибо! Эндрю