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

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

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

     int * restrict a;
    int * ограничить b;
    
    
    a = malloc (sizeof (int));
    
    
    // b = a; <- присвоение здесь недопустимо, должно происходить в дочернем блоке
    // * b = rand ();
    
    
    пока (1)
    {
    б = а; // Это законно? Предполагая, что 'b' не изменяется вне блока while ()
     * b = rand ();
    }
    
  2. Законно ли вывести значение ограниченного указателя следующим образом:

     int * restrict c;
    int * restrict d;
    
    
    c = malloc (sizeof (int *) * 101);
    d = c;
    
    
    для (int я = 0; я <100; я ++)
    {
     * d = я;
     d ++;
    }
    
    
    c = d; // c теперь установлен на 101 элемент, это допустимо при условии, что d не осуществляется?
    * c = rand ();
    

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

5
задан Mat 2 August 2012 в 18:07
поделиться