Bitte helfen Sie mir. Ich kann nicht herausfinden, warum ich einen Kern bekomme, wenn ich dieses Programm laufen lasse. Bevor ich etwas zurücksende, kann ich all_albums_p
prima drucken. Warum bekomme ich core dumped
?Warum bekomme ich Core Dump?
#include "music_server.h"
struct album_ {
int num_tracks;
char **tracks;
int **playlist_hits;
};
typedef struct album_ album;
album *parse_album(FILE *album_file,int *number_of_albums){
int number_of_album,number_of_tracks,number_of_charaters;
int i,j;
char dummy_space;
int *p;
fscanf(album_file,"%d", &number_of_album);
*number_of_albums = number_of_album;
album *all_albums_p = (album *)malloc(sizeof(album)*number_of_album);
for(j=0;j<number_of_album;j++){
fscanf(album_file,"%d", &all_albums_p[j].num_tracks);
all_albums_p[j].tracks = calloc(all_albums_p[j].num_tracks,sizeof(char));
all_albums_p[j].playlist_hits = calloc(all_albums_p[j].num_tracks,sizeof(int));
/*Line 27*/ for(i=0;i<all_albums_p[j].num_tracks;i++){
fscanf(album_file,"%d", &number_of_charaters);
all_albums_p[j].tracks[i] = (char *)calloc(number_of_charaters+1,sizeof(char));
all_albums_p[j].playlist_hits[i] = (int *)malloc(sizeof(int));
all_albums_p[j].playlist_hits[i] = 0;
fscanf(album_file," ",dummy_space);
fscanf(album_file, "%[^\n]s", all_albums_p[j].tracks[i]);
}
}
return all_albums_p;
}
main(int argc, char *argv[]){
int i,j;
int *number_of_albums,*number_of_tracks,a;
a=0;
number_of_albums = &a;
album *all_tracks_ptr;
album_file = fopen(argv[1],"r");
transaction_file = fopen(argv[2],"r");
if((album_file == NULL) || (transaction_file == NULL)){
printf("Either %s or %s could not be open");
}else{
all_tracks_ptr = parse_album(album_file,number_of_albums);
int number_of_tracks[*number_of_albums];
}
}
Fehler:
Bus Error (core dumped)
(gdb) bt
#0 0xff277c9c in _smalloc() from /lib/libc.so.1
#1 0xff277d10 in malloc() from /lib/libc.so.1
#2 0xff263830 in calloc() from /lib/libc.so.1
#3 0x00010dd8 in parse_album (album_file=0xff3675bc,
number_of_albums=0xffbff894) at functions.c:27
#4 0x00010b80 in main (argc=3, argv=0xffbff90c) at project3.c:19
ist, ist ich zuteiles sollen nur die nicht Ihre number_of_albums Erklärung in Haupt sehen()? –
Ich sehe auch nicht das Öffnen von Album_Datei. Ich nehme an, Sie haben es der Kürze halber weggelassen, aber wenn Sie nach Fehlern suchen, müssen Sie mehr und nicht weniger einbeziehen. –
Ich habe nicht meinen gesamten Code kopiert. Bearbeiten Sie es einfach mit meinem ganzen Code. –