09. februar 2008 - 17:39
Der er
5 kommentarer og 1 løsning
Simpelt C-program crasher
Hej.. jeg prøver at komme igang med noget C programmering, men er stødt på et underligt problem og har ikke fundet et svar så jeg prøver lige her :) Jeg har følgende kode: #include <stdio.h> struct element { int key; struct element *next; }; int main() { struct element *p; p->key = 1; getchar(); return 0; } Hvis jeg fjerne linjen med: p->key = 1; så virker det fint.. Nogen der kan forklare hvad jeg gør forkert og hvorfor man ikke kan gøre sådan der? mvh
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
09. februar 2008 - 17:56
#2
#include <stdio.h> #include <stdlib.h> struct element { int key; struct element *next; }; int main() { struct element *p; p = (struct element *)malloc(sizeof(struct element)); /* <----- */ p->key = 1; getchar(); return 0; } så peger den på noget.
09. februar 2008 - 18:09
#3
Hej takker mange gange for svarene.. jeg havde dog prøvet noget lignende, men der virkede det ikke, men jeg har jo nok lavet en fejl dengang så :) Men nu virker det sgu som det skal :) - C er lidt anderledes end C# og java .. lidt flere ting at tænke på.. Men smider i begge svar?
09. februar 2008 - 18:26
#4
strengt taget bør det være #include <stdio.h> #include <stdlib.h> struct element { int key; struct element *next; }; int main() { struct element *p; p = (struct element *)malloc(sizeof(struct element)); /* <----- */ p->key = 1; free(p); /* mem skal frigives igen */ getchar(); return 0; }