Ich versuche, einen Pfad zur Compile-Zeit zu definieren, indem ich folgendes übergebe:
-DDCROOTDEF='"/Pfad/zum/Zeug"'
auf der Kompilierungszeile. Dann versuche ich, dies im Code zu verwenden, wie folgt:
char * ptr_path;
strcpy(ptr_path, DCROOTDEF);
strcat(ptr_path,"/MainCommons/CommonLib/fonts/Arial.ttf");
char *pftf=ptr_path;
gdImageStringFT(pimg,brect,iclr,pftf,pts,ang,ixp,iyp, (char *)cbuf);
Was mir eine Segmentation Fault gibt. Wenn ich jedoch zuerst den String drucke:
char * ptr_path;
strcpy(ptr_path, DCROOTDEF);
strcat(ptr_path,"/MainCommons/CommonLib/fonts/Arial.ttf");
char *pftf=ptr_path;
printf("%s\n",pftf);
gdImageStringFT(pimg,brect,iclr,pftf,pts,ang,ixp,iyp, (char *)cbuf);
Funktioniert es einwandfrei. Welche Feinheiten von Zeiger auf Charaktere verpasse ich hier?
Danke
0 Stimmen
Wie wäre es, am Ende des Strings ein '\0' hinzuzufügen?
1 Stimmen
@karlphillip: Das
\0
wird automatisch am Ende eines Zeichenkettenliterals hinzugefügt.