我試圖通過傳遞來定義在編譯時的路徑:使用strcpy時分段錯誤?
-DDCROOTDEF='"/path/to/stuff"'
在編譯行。然後我試圖讓使用此代碼,如:
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);
,給了我一個分段錯誤。但是,如果我嘗試首先打印字符串:
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);
它工作得很好。字符指針是什麼錯綜複雜的我在這裏失蹤?
感謝
如何在字符串的末尾添加'\ 0'? – karlphillip 2010-08-27 14:07:31
@karlphillip:'\ 0'自動包含在字符串文字的末尾。 – 2010-08-27 14:10:41
+1這是真的。 – karlphillip 2010-08-27 15:34:13