Jadi, saya baru mengenal C dan saya mencoba menulis alat ini untuk mengedit tag id3 pada file musik dari baris perintah. Saya mendapatkan kesalahan ini:
* glibc terdeteksi bebas ganda atau rusak (atas): 0x0000000000502010 **
Dari apa yang saya baca, saya tahu ini ada hubungannya dengan mengosongkan memori. Tapi aku tidak begitu yakin ke mana harus pergi setelah ini. Bagaimanapun, logika saya adalah jika ada tag, saya akan membaca tag itu, lalu membuat perubahan apa pun yang perlu dilakukan dari bidang yang ditentukan di baris perintah. Inilah blok yang membuat saya kesulitan. Terima kasih atas wawasan apa pun sebelumnya!
fopen(argv[1], "rb");
fseek(in_file, -128, SEEK_END);
fread(&tagTest, sizeof(struct iD3Tag), 1, in_file);
fclose(in_file);
for (x = 2; x < argc-1; x++)
{
if (strcmp(argv[x], "-title"))
strncpy(tagTest.title, argv[x+1], 30);
if (strcmp(argv[x], "-artist"))
strncpy(tagTest.artist, argv[x+1], 30);
if (strcmp(argv[x], "-album"))
strncpy(tagTest.album, argv[x+1], 30);
if (strcmp(argv[x], "-year"))
strncpy(tagTest.year, argv[x+1], 4);
if (strcmp(argv[x], "-comment"))
strncpy(tagTest.comment, argv[x+1], 28);
if (strcmp(argv[x], "-track"))
tagTest.track = atoi(argv[x+1]);
}
tagTest.seperator = 0;
fopen(argv[1], "r+b");
fseek(in_file, -128, SEEK_END);
fwrite(&tagTest, sizeof(struct iD3Tag), 1, in_file);
fclose(in_file);
fread(&tagTest, sizeof(struct iD3Tag), 1, in_file);
tidak boleh dilakukan. Struktur memiliki bantalan bagian dalam di antara anggota struktur karena batasan penyelarasan memori sehingga informasi tag Anda pada dasarnya akan rusak... - person   schedule 05.02.2012struct iD3Tag
? - person pmg   schedule 05.02.2012