01. februar 2005 - 16:08
Der er
9 kommentarer og 1 løsning
Structs og arrays i C
Jeg sidder og kæmper med en struct, der skal indeholde et array. Det er jo nemt nok... struct bus { int numberList[]; ... } men er det lovligt at benytte en tom angivelse af størrelsen på arrayet? og hvordan sætter jeg størrelsen efterfølgende? //Jesper
Annonceindlæg fra Infor
01. februar 2005 - 16:11
#1
Nej. Ikke i standard C. Brug: struct bus { int *numberList; ... } og lav en: minbus.numberList = (int *)malloc(117*sizeof(int)); senere
01. februar 2005 - 16:28
#2
hvorfor lige 117? og er det samme procedure, hvis jeg vil lave et array af strenge? altså struct bus { int **numberList; ... } minbus.numberList = (char *)malloc(117*sizeof(char)); //Jesper
01. februar 2005 - 16:34
#3
Det var bare et tal jeg valgte. Du vælger det du skal bruge. Og du kan godt bruge en variabel.
01. februar 2005 - 16:35
#4
Du kan lave en char* og malloc'e sådan en eller du kan lave en char** og først malloc'e nogle char* og så malloc'e dem.
01. februar 2005 - 18:07
#5
Smid et svar :P Tak for hjælpen! //Jesper
01. februar 2005 - 18:18
#6
kommer her
02. februar 2005 - 09:01
#7
Weird... Ligegyldigt hvad jeg indsætter i stedet for 117, så får jeg kun 4 pladser i integer-arrayet! //Jesper
02. februar 2005 - 09:06
#8
Øh. Hvordan tester du det ? sizeof(minbus.numberList) returnerer altid 4 (på 32 bit systemer), men det er fordi sizeof returnerer størrelsen af pointeren ikke størrelsen af det som den peger på.
02. februar 2005 - 09:19
#9
Tak for hjælpen! Fandt selv ud af det har blot tilføjet en variabel, der hedder size og så lavet en funktion, der klarer initialiseringen. - hvordan er du blevet så klog Arne_v??? - jeg bliver imponeret hver gang! //Jesper
02. februar 2005 - 09:31
#10
Jeg lærte at programmere i 1983 ! (Fortran iøvrigt)
Kurser inden for grundlæggende programmering