c - char *derp[20] 是什么意思?

标签 c arrays string pointers

另外: 这段代码有意义吗? (我是 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的指针,该指针使用指向derpchar元素的第一个指针进行初始化。只要 derp 的第一个元素已正确分配(例如使用 malloc),它就有意义。

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

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

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

关于c - char *derp[20] 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15982517/

相关文章:

java - 如何将从 csv 文件读取的标记放入对象数组中

c++ - 几次(非常好)迭代后循环崩溃/损坏

java - Android NDK 在使用 ART 调用静态方法的 CallObjectMethod 中崩溃

c++ - 如何在没有填充的情况下检查结构的大小?

php自动对象到数组的转换

java - 字符串输入不会打印空格?

java - 拆分包含表情符号的字符串

python - 为字符串列表中的子字符串实现更高效的 Python 算法

c - 释放结构内结构中的分配

c - 如何从可执行文件中删除链接库