Ivalue required as left opend of assigment - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! В строке: (temp+i) = NULL;, возникает ошибка: ivalue required as left opend of assigment. Подскажите, пожалуйста, как её исправить?
spisok *newarr(int size)
{
    spisok *temp;
 
    if ((temp=malloc(sizeof(spisok)*size)))
    {
        int i=0;
 
        while(i < size)
            (temp+i) = NULL;
 
        return temp;
    }
 
    else
        return NULL;
}

Решение задачи: «Ivalue required as left opend of assigment»

textual
Листинг программы
int main()
{
    spisok *head;
 
    newarr(&head, 10);
    (head+1)->data=10;
}

Объяснение кода листинга программы

В данном коде выполняются следующие действия:

  1. Объявляется указатель head на вершину списка.
  2. С помощью функции newarr выделяется память под список из 10 элементов, и указывается, что первый элемент списка будет хранить указатель на следующий элемент (для удобства работы со списком).
  3. Указатель head указывает на первый элемент списка.
  4. Указатель (head+1) указывает на второй элемент списка.
  5. Значение 10 присваивается второму элементу списка.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5