另外: 这段代码有意义吗? (我是 C 新手,所以不确定)
char*s1 = derp[0];
char*s2 = derp[1];
我觉得 derp 是一个指向字符的指针数组(即字符串数组),我试图从数组中取出两个字符串。但是,当我尝试将这两个 char* 传递给函数(其原型(prototype)为 FindMaxOverlap(char*long, char*short) 时,编译器会向我抛出一个错误,指出 FindMaxOverlap 函数存在隐式定义)。
最佳答案
char *derp[20]:
将 derp
声明为指向 char
的指针数组 20
。
char*s1 = derp[0];
声明s1
指向char
的指针,该指针使用指向derp
的char
元素的第一个指针进行初始化。只要 derp
的第一个元素已正确分配(例如使用 malloc
),它就有意义。
您可以将 s1
和 s2
传递给您的 FindMaxOverlap
函数,但 derp[0]
和 derp[1]
必须指向有效对象。
当您调用 FindMaxOverlap
函数时,必须在源文件中声明 FindMaxOverlap
,例如使用包含文件或在文件范围声明原型(prototype)。
另请注意,long
和 short
是 C 语言中的关键字,不能将它们用作函数参数的标识符。
关于c - char *derp[20] 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15982517/