我的計劃是傳遞字符串數組給一個函數
#define ARRLEN 10
#define SIZEALCO 128
#define MAX_STRING_LENGTH 12
在主要功能
,
char TYPEDATA_XML_FN[ARRLEN][SIZEALCO];
char TYPEDATA_MD5_FN[ARRLEN][SIZEALCO];
char identifier[ARRLEN][MAX_STRING_LENGTH];
char Temppath[SIZEALCO];
int arraynum;
// ...
arraynum = 0;
for(arraynum = 0; arraynum <ARRLEN; arraynum++)
{
/* Create the file name with the path*/
strcpy(Temppath,"/fw/TYPEDATA/");
nameFil(Temppath,identifier[arraynum],TYPEDATA_XML_FN[arraynum],TYPEDATA_MD5_FN[arraynum]);
}
子功能:
void nameFil(char *SourPath,char *InPinName,char *FilePathNameXml,char *FilePathNameMd5)
{
sprintf(FilePathNameXml, "%s\\%s_TYPEDATA.XML",SourPath,InPinName);
sprintf(FilePathNameMd5, "%s\\%s_TYPEDATA.MD5",SourPath,InPinName);
}
我你的榜樣檢查。我用(試驗)
char** a = calloc(ARRLEN, sizeof(char *));
for(i = 0; i < ARRLEN ; ++i)
a[i] = ucmalloc(MAX_STRING_LENGTH);
pase(a);
子函數:
void pase(char b[ARRLEN][MAX_STRING_LENGTH])
{
// ...
}
現在,我得到警告消息爲 「警告:傳遞來自兼容的指針類型`PASE」的ARG 1」。
實際上,我想傳遞完整的字符串數組標識符TYPEDATA_XML_FN,TYPEDATA_MD5_FN。現在我將單個字符串傳遞給子函數。請引導我。謝謝