Я изучаю указатель на структуру в с и я сделал этот код для обучения:указателя на структуру в C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct
{
int id;
char *name;
}struct_type_t;
void set_struct(struct_type_t **);
int main(int argc, char *argv[])
{
struct_type_t *m = NULL;
set_struct(&m);
printf("%d\n", m->id);
//fflush(stdout);
printf("%s\n", m->name);
return 0;
}
void set_struct(struct_type_t **m)
{
struct_type_t t;
*m = &t;
(*m)->id = 5;
(*m)->name = "Pointer To Structure";
}
Функция set_struct
предназначена для установки элементы этой структуры, передавая адрес указателя к структуре struct_type *m
к функции.
но в строке printf в основной функции он не печатает член строки name
структуры, вместо этого он печатает только целочисленный элемент id
.
Я использовал fflush для, но все еще не работает.
пожалуйста, помогите мне исправить этот код и проверить, что случилось ....
но я инициализируюсь указатель '* M' структурировать' T' – harianja
@harianja которая неопределенное поведение, потому что объект выходит из области видимости – CoffeeandCode
@CoffeeandCode, если он выходит из области видимости, то почему он до сих пор печать элемент id структуры? – harianja