您好,我试图编译我的代码,但出现访问冲突错误。我试图制定一个议程,我可以使用列表插入值。我的代码有什么错误?
#include <stdio.h>
#include <iostream>
using namespace std;
typedef struct ap_agenda{
char *name;
char *telefone;
struct ap_agenda *proximo;
};
void init(ap_agenda* lista){
lista = NULL;
}
void insere(char *nome, char *telefone, ap_agenda* lista){
ap_agenda *p;
p = (ap_agenda*) malloc(sizeof(ap_agenda*));
p->name = nome;
p->telefone = telefone;
if(lista == NULL){
lista = p;
}else{
lista->proximo = p;
}
}
void imprime(ap_agenda *lista){
cout << lista[0].name << endl;
}
int main(){
ap_agenda agenda;
init(&agenda);
insere("test","123456",&agenda);
imprime(&agenda);
system("pause");
}
谢谢 !
您好,感谢您的回答!我更改了我的代码,现在它“工作”了,但是当我尝试打印列表时,它跳了一行。
void insere(std::string nome, std::string telefone, ap_agenda* lista){
ap_agenda *p = new ap_agenda;
p->name = nome;
p->telefone = telefone;
p->proximo = NULL;
if(lista == NULL){
lista = p;
}else{
while(lista->proximo != NULL)
lista = lista->proximo;
lista->proximo = p;
}
}
void print(ap_agenda* lista){
ap_agenda *p;
for(p=lista; p!=NULL; p=p->proximo)
cout << p->name.c_str() << endl;
}
输出为:
[空白行]
test1
test2