The_Invisible
2008-06-17, 19:21:35
keine ahnung ob ich da gerade voll nen bock schieße oder sonstwas, jedenfalls funktioniert es vorne und hinten nicht.
mal einen revelanten ausschnitt aus dem code:
struct whoisdata
{
char **data;
short status;
};
struct whoisdata get_whois_data(char *server, char *dom);
int main(void)
{
struct whoisdata tmp = { NULL, 0 };
...
tmp = get_whois_data(server, domain);
if(tmp.status == 0)
{
return EXIT_FAILURE;
}
printf("==%p", *tmp.data);
...
}
struct whoisdata get_whois_data(char *server, char *dom)
{
char *whoisdata = (char *) malloc(sizeof(char)*10240);
struct whoisdata data;
strcpy(whoisdata, "");
...
printf("==p=%p\n", whoisdata);
while(bytes > 0)
{
bytes = recv(s, buffer, sizeof(buffer) - 1, 0);
buffer[bytes] = '\0';
if(bytes > 0)
strncat(whoisdata, buffer, sizeof(buffer));
}
data.data = &whoisdata;
printf("==pp=%p\n", *data.data);
return data;
}
als ausgabe erhalte ich hier:
==p=00C12920
==pp=00C12920
==0017FA60
es sollte aber eigentlich immer auf die selbe adresse verwiesen werden, oder?
wenn ich da natürlich weiterarbeite erhalte ich speicherverletzungen vom feinsten, zu hilf bitte. :(
mfg
mal einen revelanten ausschnitt aus dem code:
struct whoisdata
{
char **data;
short status;
};
struct whoisdata get_whois_data(char *server, char *dom);
int main(void)
{
struct whoisdata tmp = { NULL, 0 };
...
tmp = get_whois_data(server, domain);
if(tmp.status == 0)
{
return EXIT_FAILURE;
}
printf("==%p", *tmp.data);
...
}
struct whoisdata get_whois_data(char *server, char *dom)
{
char *whoisdata = (char *) malloc(sizeof(char)*10240);
struct whoisdata data;
strcpy(whoisdata, "");
...
printf("==p=%p\n", whoisdata);
while(bytes > 0)
{
bytes = recv(s, buffer, sizeof(buffer) - 1, 0);
buffer[bytes] = '\0';
if(bytes > 0)
strncat(whoisdata, buffer, sizeof(buffer));
}
data.data = &whoisdata;
printf("==pp=%p\n", *data.data);
return data;
}
als ausgabe erhalte ich hier:
==p=00C12920
==pp=00C12920
==0017FA60
es sollte aber eigentlich immer auf die selbe adresse verwiesen werden, oder?
wenn ich da natürlich weiterarbeite erhalte ich speicherverletzungen vom feinsten, zu hilf bitte. :(
mfg