我在使用 C 中的列表时遇到了一些问题。
我做了这个结构:
typedef struct str {
char * str;
struct str * prox;
struct str * ant;
} cadena;
然后在主目录中,我以第一个指向 NULL 的指针开始列表。
cadena * lista = NULL;
然后我创建了一个函数,用户可以在其中向列表添加新元素(“str”成员中的字符串),并管理构建列表的指针。这似乎工作正常。我希望。
但是当我想打印一个节点的成员时,我正在尝试使用这样的东西,但它不起作用:
void showdata (cadena *lista) {
int i=0;
while (lista.str[i] != '\0')
{
printf("%c\n",str[i]);
i++;
}
}
我收到这些错误:
from line "while (lista.str[i] != '\0')"
.error: request for member ‘str’ in something not a structure or union
(为什么它需要一个结构?我以为我正在访问那里的成员)
from line "printf("%c\n",str[i]);"
.error: ‘str’ undeclared (first use in this function)
(不是用结构声明的吗?)
我肯定做错了什么,但我不明白哪种方法是访问 char 成员并打印它的正确方法。
先感谢您。