Hallo,
Ich habe das Problem das wenn ich einen char Pointer in meinen Programm mit free lösche kommt eine Unterbrechung in meinen Debugger (der von VS 2008 Express Edition). Also ein grüner Pfeil auf die free Funktion. Weiss jemand an was das liegen kann? Hab jetzt einfach nur einen Ausschnitt aus dem Code genommen.
int GetUniversialLink(char \*sUrl, char \*VideoLink)
{
int length = getZwischenStringLength(sUrl, ".", ".", 0);
int lengthofLink;
char \*site;
site = (char\*)malloc(sizeof(char)\*length);
getZwischenString(sUrl, ".", ".", site, 0);
//MessageBox(NULL, site, "", MB\_OK);
if(checkSame(site, "myvideo") == 1)
{
lengthofLink = GetMyVideoLinkLength(sUrl);
if (VideoLink == NULL)
{
free(site);
site = NULL;
return lengthofLink;
}
else
{
free(site);
site = NULL;
GetMyVideoLink(sUrl, VideoLink);
return 0;
}
}
else if(checkSame(site, "youtube") == 1)
{
lengthofLink = GetYoutubeLink(sUrl, NULL);
if (VideoLink == NULL)
{
free(site);
site = NULL;
return lengthofLink;
}
else
{
free(site);
site = NULL;
GetYoutubeLink(sUrl, VideoLink);
return 0;
}
}
else
{
MessageBox(NULL, "Fehlerhafter Link. Bitte benutze den direkten Link von der Seite", "Error", MB\_OK);
return -1;
}
}
Das mit dem free funktioniert aber in einen kleinen beispiel wie dem
#include
#include
using namespace std;
int main()
{
char \*pointer = (char\*)malloc(1024);
pointer = (char\*)realloc(pointer, 1080);
sprintf(pointer,"%djkdlaöfjkldösfjklö", 1);
free(pointer);
pointer = NULL;
return 0;
}
Weiss jemand an was das liegen kann?
Gruß Michael