Postingan lainnya
(bahasa C)terkadang saya dpt "BUS ERROR" terkadang "SEGMENTATION FAULT" pad linked list
saya sedang belajar membaut single linked list , tapi sudah seminggu saya belajar tpi tdk berjalan sesuia harapan, padahal sy sudah mengikuit sesuai pada tutorial, tapi dengan sedikti modifikasi.Tolong cek kode sy, bagaimna cata membuat function unutk membuat node lalu menampilkannya.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Book
{
char *title;
char *author;
int year;
// pointer next
struct Book *next;
} myBook;
myBook *head = NULL;
myBook *current;
void createBook(myBook *head,char *t,char *a,int y){
// buat space baru
myBook *newBook;
newBook = NULL;
newBook = (myBook*) malloc(sizeof(myBook));
strcpy(newBook->title,t);
strcpy(newBook->author,a);
newBook->year = y;
if (head == NULL){
head = newBook;
head->next = NULL;
}else{
while (head != NULL)
head=head->next;
head = newBook;
newBook->next = NULL;
}
}
void printBook(){
current = head;
while (current != NULL){
printf("Judul : %s\n",current->title);
printf("Penulis : %s\n",current->author);
printf("Tahun : %d\n",current->year);
current = current->next;
}
}
int main()
{
char *judul, *penulis;
int tahun;
printf("Masukkan Judul : ");scanf("%s",judul);
printf("Masukkan Penulis : ");scanf("%s",penulis);
printf("Masukkan Tahun : ");scanf("%d",&tahun);
createBook(head,judul,penulis,tahun);
printBook();
return 0;
}
0
1 Jawaban:
segmentation fault karena mengakses alamat memory yang belum dialokasikan, ini kreana salah dalam mendeklarasikan string. coba ganti:
char * judul;
char * penulis;
menjadi
char judul[50];
char penulis[50];
0