我试图在C中创建一个链接列表,其中包含带有数据的struct
;但是,我不能由于指针的一些问题。我在c中是全新的。这是我的代码:主要目标是编写的名字,并将它们存储在一个LinkedList包含一个struct链接列表C中包含结构
(我得到这个错误错误:
incompatible types when assigning to type ‘Contacto {aka struct }’ from type ‘void *’ enlace->contact = malloc(sizeof(contact));)
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char name[50];
char apellido[50];
} Contacto ;
typedef struct nodo {
Contacto contact;
struct nodo* siguiente;
} nodo;
nodo *cabecera = NULL;
nodo *actual = NULL;
void viewNames()
{
nodo *ptr;
ptr = cabecera;
printf("**********************************");
while(ptr != NULL) {
printf("%s",ptr->contact.nombre);
ptr = ptr->siguiente;
}
printf("**********************************");
}
int main (int argc, char *argv[])
{
nodo *enlace;
char nom;
int cont=0;
Contacto contact;
while (1){
printf("Write names or 0 to exit ");
scanf("%s",&nom);
if (nom == '0') {
cabecera = enlace;
break;
} else {
enlace = (nodo *) malloc(sizeof(nodo));
enlace->contact = malloc(sizeof(contact));
strcpy(enlace->contact.nombre, nom);
enlace->siguiente = actual;
actual = enlace;
}
}
viewNames();
}
“由于指针的一些问题“。你遇到什么具体问题?你不能只说“一些问题”,并期望人们知道你有什么确切的问题或问题。它编译失败吗?崩溃?产生错误的结果?究竟是什么? – kaylum
很抱歉,我得到这个错误错误:分配给输入“CONTACTO {又名STRUCT}”从类型“void *的”当不兼容的类型 enlace->接触= malloc的(的sizeof(接触)); –
jadev
这里的问题的负载:字符串的scanf到char变量中。与“contact.nombre”不匹配的代码? malloc的非指针变量'enlace-> contact'就够了。我放弃。 – John3136