我正在尝试执行下面的代码,但它会返回分段消息。 我试图inizialize一个列表,然后包括第一个节点(cabecera)并打印数据,但它会返回一个分段错误。 请帮助我,不知道最新的问题。 预先感谢您。c中的分段错误
#include<stdio.h>
#include<stdlib.h>
typedef struct NODO{
float data;
struct nodo* next;
struct nodo* before;
} nodo;
typedef struct CABECERA{
float data;
struct nodo* next;
} cabecera;
void init(cabecera *L){
L=NULL;
}
void pushBack(cabecera *L, float e){
cabecera *newnodo;
newnodo= (cabecera*)malloc(sizeof(cabecera));
newnodo->next= NULL;
newnodo->data=e;
L=newnodo;
}
int main(){
cabecera *milista;
init(milista);
pushBack(milista, 0.5);
printf("%f\n", milista->data);
return 0;
}
'void init(cabecera * L){0} {0} {0}您没有初始化任何东西,只是将局部变量设置为NULL。您的push_back方法也一样。 –
@ Jean-FrançoisFabreL是一个指针,为什么它应该是一个问题? –
@Shiva:它是一个指针,但是按值传递。分配给'L'在该功能之外没有效果。 – Mat