Perguntas sobre ponteiros restritos
Estou um pouco confuso sobre as regras relativas a indicadores restritos. Talvez alguém por aí possa me ajudar.
É legal definir ponteiros restritos aninhados da seguinte maneira:
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();
}
É legal derivar um valor de ponteiro restrito da seguinte maneira:
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();
Obrigado! Andrew