我的计划是传递字符串数组给一个函数
#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。现在我将单个字符串传递给子函数。请引导我。谢谢