Указатель на структуру - что напечатает программа - C (СИ)

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

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

Возьмём пример на языке Си:
Листинг программы
  1. #include <stdio.h>
  2. typedef struct
  3. {
  4. int x, y;
  5. } MyStruct;
  6. int main (void)
  7. {
  8. struct MyStruct *p;
  9. p = NULL;
  10. printf ("%p\n", p);
  11. /*
  12. p++;
  13. printf ("%p\n", p);
  14. */
  15. return 0;
  16. }
1. Что напечатается? 2. Что будет, если раскомментировать закомментированный код? 3. Что будет, если данный тест подать в компилятор Си++? Традиционная просьба к тем, кто заранее знает ответ, прятать его под CUT

UPD

: подправлен пример

Решение задачи: «Указатель на структуру - что напечатает программа»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. typedef struct
  4. {
  5.   int x, y;
  6. } MyStruct;
  7.  
  8. typedef struct MyStruct* MyStructPtr;
  9.  
  10. int main (void)
  11. {
  12.   MyStructPtr p;
  13.  
  14.   p = NULL;
  15.   printf ("%p\n", p);
  16. /*
  17.   p++;
  18.   printf ("%p\n", p);
  19. */
  20.   return 0;
  21. }

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

В данном коде определен тип структуры MyStruct с двумя полями типа intx и y. Также определен указатель на эту структуру MyStructPtr. В функции main инициализируется указатель p на структуру MyStruct значением NULL (указатель на отсутствующую память). Затем происходит попытка инкремента указателя p (что было бы некорректно, так как указатель не указывает на существующую память), и выводится значение указателя до и после инкремента. Но так как в коде отсутствует оператор new для выделения памяти под объект структуры MyStruct, то программа не выполняется и выдается ошибка.

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


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

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

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы