Программирование на Си урок 35: Структуры в языке Си объявление указателей в структуре

Поделиться
HTML-код
  • Опубликовано: 22 фев 2017
  • Структуры в языке Си объявление указателей в структуре
    Поддержать канал:
    If You want to support the channel:
    Донат / Donate
    RUB R939373054553
    USD Z657301568665

Комментарии • 24

  • @alexweis9400
    @alexweis9400 7 лет назад +7

    Спасибо. Ваши уроки радуют. Было бы здорово, если б они продолжались.

  • @Bolek1708
    @Bolek1708 4 года назад +3

    Спасибо! Полезный и понятный урок ! Только начал учить си, очень помогает !

  • @adison6804
    @adison6804 6 лет назад +6

    От души большое спасибо. Хорошо объясняешь. С помощью твоих уроков скоро в университет поступлю.

  • @uinroot
    @uinroot 7 лет назад +2

    Спасибо за урок!

  • @itcloudguy
    @itcloudguy 6 лет назад

    Спасибо за полезные скринкасты. Какие программные усилители звука посоветуете использовать для обработки Ваших видео после скачки?

  • @namename2031
    @namename2031 2 года назад

    21:20
    Вы создали массив констант, чем это хорошо?
    Так удобнее.
    struct car
    {
    char *ptr;
    };
    int main()
    {
    struct car bmw;
    char arr[]={"Hello"};
    bmw.ptr=arr;
    printf("%s
    ", bmw.ptr);
    }

  • @user-sj1qf8cb7h
    @user-sj1qf8cb7h 2 года назад

    Сначала по указателю присваиваем значение из четырёх символов + терминатор. Потом меняем на значение так же из четырёх символов + терминатор - всё ок. А если попытаться поменять на значение не из четырёх, а, например, из восьми символов + терминатор - что сделает компилятор? Переназначит область памяти большего размера? Заругается, что не хватает места, и вылетит? Обрежет строку до первоначального размера? Если третье, то обрежет до размера четыре символа + терминатор, или пять символов, но без терминатора? Если переназначит память - освободит ли назначенную ранее область памяти? Или возникнет утечка?

  • @namename2031
    @namename2031 2 года назад +2

    13:58 Это обыкновенное поведение любого массива. Не важно где массив находится или в структуре или без структуры.
    17:17 По такой логике не надо никогда использовать обыкновенные массивы.
    19:19 Непонятно почему вы именно указатель создали. Циклом for можно и из простого массива в другой массив сохранить.

  • @namename2031
    @namename2031 2 года назад

    24:00 У вас сейчас в ptr.str лежит только массив констант со словом Idea. Странная идея.

  • @markwolf2300
    @markwolf2300 4 года назад

    Привет. Бывает так что объявляют структуру как тип данных, и потом применяют эту структуру на функцию. Например
    typedef struct {
    int a;
    char *b;
    } ts;
    ts print_char() ....
    Что это значит? Какой в этом смысл ?

    • @Erudite.
      @Erudite. 4 года назад +1

      *Mark Wolf*
      Здравствуйте. Смысл в этом достаточно глубокий. Это значит, что фу-ция print_char() возвращает значение у которого тип ts.

  • @minorman
    @minorman 8 месяцев назад

    10:20

  • @validdoll
    @validdoll 6 лет назад

    при попытке заполнения строки -указателя через сканф выдает ошибку при заполнении таким образом масива символов ошибки нет как заполнить строку - указатель через сканф?

    • @FromtheLAMERtotheProgrammer
      @FromtheLAMERtotheProgrammer  6 лет назад

      #include
      int main(int argc, char **argv)
      {
      char **uk_char; // указатель на указатель
      char *massiv[] = {""}; // создали массив указателей и инициализировали его значением пустая строка
      uk_char = massiv; // указатель содержит адрес массива
      fprintf(stdout, "Enter string:
      "); // выводим строку с приглашением написать что нить.
      fscanf(stdin, "%s", uk_char); // считываем из стандартного ввода
      fprintf(stdout, "You entered 'Pointer': %s
      ", uk_char); // выводим то что ввели.
      fprintf(stdout, "You entered 'Massiv': %s
      ", massiv); // выводим то что ввели.
      } // Можно сделать так.

    • @tmdan91
      @tmdan91 5 лет назад

      оператор new используй

  • @66stol
    @66stol 7 лет назад +1

    вот НЕ посимвольная запись и работает:
    typedef struct
    {
    char name[20];
    }magazin;
    main()
    {
    magazin one ={"magnit"};
    printf("name=%s", one.name);
    }

    • @66stol
      @66stol 7 лет назад

      хех, one name ютюб воспринимает как сайт XD

    • @FromtheLAMERtotheProgrammer
      @FromtheLAMERtotheProgrammer  7 лет назад

      Обращение через точку.

  • @alexanderzhilcov5392
    @alexanderzhilcov5392 4 года назад +1

    Уроки конечно хороши, но еще бы объяснять зачем все это надо. А то получается, что каждый урок сводится к функции принтф, и не понятно ,зачем все эти танцы с бубном нужны

  • @user-yy7zg8iz7m
    @user-yy7zg8iz7m 4 года назад

    Хауди это ты?)

  • @olegpahl2784
    @olegpahl2784 5 лет назад

    Это говнокод?! Индусы сморят твои видосы?