我正在嘗試執行下面的代碼,但它會返回分段消息。 我試圖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