11. februar 2003 - 17:53
Der er
9 kommentarer og 2 løsninger
PointerTilPointer
char **text; Kort og godt, jeg er ikke helt med det en double op stjerne... :/ Hvad betyder det helt præcist, og hvis der var en som ville lave et eksempel med en "**" ville jeg blive meget glad. Mvh Daniel
Annonceindlæg fra Cognizant
Agentic AI kræver mere end teknologi
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
11. februar 2003 - 17:56
#1
Det skal du bruge hvis du skal have et dynamisk array af dynamisk array. I C++: typedef char *charptr; char **s; s = new charptr[N]; for(int i = 0; i < N; i++) s[i] = new char[M];
11. februar 2003 - 17:58
#2
I C må det være: typedef char *charptr; char **s; int i; s = (charptr *)malloc(N*sizeof(charptr)); for(i = 0; i < N; i++) s[i] = (char *)malloc(M);
11. februar 2003 - 17:59
#3
Indtastet direkte uden at teste, så du må hellere lige checke min kode for tåbelige typos. :-)
11. februar 2003 - 18:00
#4
hvis jeg har forstået det her rigtigt mener du så at man kan udvidde sit d. array af d. array, hvis der er to ** foran, og ikke hvis der kun er en * ?
11. februar 2003 - 18:00
#5
Et andet - måske mere praktisk eksempel: #include <stdio.h> int main(int argc, char **argv) { for(int i=0;i<argc;i++) { printf("arg[%i] = [%s]\n", i, argv[i]); } return 0; } Eksempel: main.exe hello world -s -t 2 arg[0] = [main] arg[1] = [hello] arg[2] = [world] arg[3] = [-s] arg[4] = [-t] arg[5] = [2]
11. februar 2003 - 18:01
#6
s = (charptr *)malloc(N*sizeof(charptr)); Det er "N" hvad er det for noget ?
11. februar 2003 - 18:03
#7
jamen soreno, kunne man ikke også godt gøre det samme hvis jeg bare gjode sådan her... #include <stdio.h> int main(int argc, char *argv) { for(int i=0;i<argc;i++) { printf("arg[%i] = [%s]\n", i, argv[i]); } return 0; } Eksempel: main.exe hello world -s -t 2 arg[0] = [main] arg[1] = [hello] arg[2] = [world] arg[3] = [-s] arg[4] = [-t] arg[5] = [2]
11. februar 2003 - 18:04
#8
N er antal strenge du skal have. M er max-længden af strengene.
11. februar 2003 - 18:06
#9
Nej - for du skal se "char **argv" som et "array af char pointers" Altså når man skriver argv[0] så er det char array der er på plads 0 som tilgåes (i mit tilfælde "main").
11. februar 2003 - 18:06
#10
char *s; er en pointer til at array af char som f.eks. kan indeholde 'a' 'b' 'c' '\0' char **s; er en pointer til et array af pointers som hver kan pege på en streng som f.eks.: 'a' '\0' 'b' '\0' 'c' '\0'
11. februar 2003 - 18:08
#11
jeg fatter det... :) Tak
Kurser inden for grundlæggende programmering