2

另外:这段代码有意义吗?(我是C新手,所以不确定)

char*s1 = derp[0]; 
char*s2 = derp[1]; 

我觉得derp是一个指向字符的指针数组(即一个字符串数组),我试图从数组中取出两个字符串。但是,当我尝试将这两个 char* 传递给一个函数(其原型是 FindMaxOverlap(char*long, char*short) 时,编译器会向我抛出一个错误,指出存在 FindMaxOverlap 函数的隐式定义)。

4

1 回答 1

2
 char *derp[20]:

声明为指向 的指针derp数组。20char

char*s1 = derp[0];

声明s1一个指针,用指向元素的char第一个指针进行初始化。只要 的第一个元素已正确分配,例如使用.charderpderpmalloc

您可以将s1and传递s2给您的FindMaxOverlap函数,但derp[0]必须derp[1]指向有效对象。

当您调用FindMaxOverlap函数时,FindMaxOverlap必须在源文件中声明,例如使用包含文件或通过在文件范围内声明原型。

另请注意,longandshort是 C 中的关键字,您不能将它们用作函数参数的标识符。

于 2013-04-12T23:42:07.247 回答