Avatar billede cvpcvp Nybegynder
18. juni 2003 - 20:41 Der er 2 kommentarer og
1 løsning

Allokering af hukommelse til char* og lægge 2 strenge sammen

jeg har en funktion der tager en char* som parameter.

lad os sige at det parameter er "filnavn"

jeg vil så i funktionen kunne tilføje forskellige extensions til dette navn..

f.eks. så jeg får: "filnavn.txt", eller "filnavn.bmp"

Jeg har forsøgt at bruge strcat() men jeg får en fejl omkring noget allokering...
Avatar billede arne_v Ekspert
18. juni 2003 - 20:45 #1
char buf[100];
strcpy(buf,"filnavn");
f(buf);

og:

void f(char *fn)
{
  strcat(fn,".txt");
}

bør virke.
Avatar billede arne_v Ekspert
18. juni 2003 - 20:46 #2
char *buf = "filnavn";
f(buf);

og:

void f(char *fn)
{
  strcat(fn,".txt");
}

vil nok give nogle grimme runtime fejl, fordi du forsøger at skrive
et sted i memory hvor du absolut ikke har lov at skrive.
Avatar billede arne_v Ekspert
18. juni 2003 - 20:48 #3
char *buf;
buf = (char *)malloc(100);
strcpy(buf,"filnavn");
f(buf);

er også OK.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester