Fragen zu eingeschränkten Zeigern

Ich bin ein wenig verwirrt über die Regeln für eingeschränkte Zeiger. Vielleicht kann mir da draußen jemand helfen.

Ist es zulässig, verschachtelte eingeschränkte Zeiger wie folgt zu definieren:

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();
}

Ist es zulässig, einen eingeschränkten Zeigerwert wie folgt abzuleiten:

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();

Vielen Dank! Andrew

Antworten auf die Frage(4)

Ihre Antwort auf die Frage