-3

我正在练习使用链表,并试图在字符串标题中创建自己的 strlen 函数。首先,我像这样制作了自己的标题。

我的头文件.h

typedef struct _str {
    char c;
    struct _str *l;
}
typedef cp2014str *cp2014strPtr;
size_t cp2014strlen(const cp2014str * str);

size_t cp2014strlen(const cp2014str * str) {
    size_t i;
    cp2014strPtr strptr;
    strptr = str;
    for(i = 0; strptr != NULL; i++) {
        strptr = strptr -> l;
    }
    return i - 1;
}

我用这段代码测试了我自己的strlen

 #include <string.h>
 #include "myHeader.h"
 int main() {
     int i, j;
     i = strlen("Happy");
     j = cp2014strlen("Happy");
     printf("%d %d\n", i, j);
     return 0;
 }

但是我编译运行后,即使没有编译错误,在运行程序的过程中还是出现了segmentation fault。我无法弄清楚为什么它是错误的。

4

1 回答 1

1

"Happy"是一个字符串,而不是一个链表。要使用您的功能,您需要制作一个链表,其中每个字母作为链表中的一个节点。

于 2014-11-30T07:47:43.287 回答