Hallo - lasst euch von den paramtern nicht abschrecken, darum gehts hier nämlich nicht..
struct c *create_config(interval * val, float limit, short alarm_mode, short locked_mode){
struct c config = {val, limit, alarm_mode, locked_mode};
return &config;
}
int main(){
struct c *p_config = create_config(val_1, 2.3, 2, 3);
short lm = p_config->locked_mode;
printf("%d", lm);
}
ich dachte, wenn ich variabeln/structs während der laufzeit initialisiere, benötige ich malloc. dennoch liefert mein programm die richtige zahl, nämlich 3.
noch eine frage:
wenn ich in java auf ein objekt zeige, existiert es, solange ich darauf zeige. wenn ich in C auf ein objekt zeige, und meinen zeiger de-referenziere, existiert das objekt weiter (obwohl ich nicht mehr darauf zugreifen kann) um es vom speicher zu entfernen, muss ich zuerst free() anwenden - stimmt das?