Ich Zeiger Lernen in c zu strukturieren und ich habe diesen Code für das Lernen gemacht:Zeiger auf struct in 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";
}
Die Funktion set_struct
soll, indem die Adresse des Zeigers die Strukturkomponenten setzen um die Funktion struct_type *m
zu strukturieren.
aber in der printf-Zeile in der Hauptfunktion, es ist nicht Drucken der string-Member name
der Struktur, stattdessen nur das Integer-Element id
drucken.
Ich habe fflush verwendet, aber immer noch nicht funktioniert.
mir bitte helfen, diesen Code zu korrigieren und zu überprüfen, was los ist ....
, aber ich habe den Zeiger '* m' zu strukturieren' t' – harianja
@harianja initialisiert, die nicht definiertes Verhalten ist, weil das Objekt den Gültigkeitsbereich – CoffeeandCode
@CoffeeandCode geht, wenn es den Bereich verlässt, dann, warum es immer noch drucken das ID-Mitglied der Struktur? – harianja