joker1025
28-04-2008, 16:12
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.
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 :confused:
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.
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 :confused: