Hi,
weis leider nicht mehr weiter, kann mir vlt. irgendjemand erklären warum bei diesem Programmabschnitt eine Speicherallokierung fehlschlägt? Ich habe den Fehler soweit eingegrenzt, dass der Fehler in der Zeile
if ((neu = fopen(pnam, "w")) == NULL) ...
auftritt, was mir allerdings unerklärlich ist, da hier nichtmal eine allokierung geschieht.
Code:
else if (ccnt > 1)
{
sprintf(cmd,"splitflv %s %d",video, ccnt);
for (i=0; i<ccnt; i++)
{
sprintf(pnam,"/tmp/SCFIFO%d\0",cnr[i]);
if ((neu = fopen(pnam, "w")) == NULL)
{
perror("fopen");
exit(1);
}
sndstr = malloc(407);
sprintf(sndstr,"%s&part%d\0",pipbuf2,i);
fputs(sndstr,neu);
set_state(getmaxstate());
free(sndstr);
free(pnam);
fclose(neu);
}
}
pnam initialisierung: char *pnam = malloc(100);
Fehlerbezeichnung:
*** glibc detected *** malloc(): memory corruption: 0x0804d8b0 ***
Wäre über Hilfe sehr erfreut
Lesezeichen