Njk00
27-01-2010, 13:27
Salve
volevo chiedere come mai questo codice non funziona:
#include <stdio.h>
#include <stdlib.h>
void test(int*);
int a = 7;
int main(int argc, char** queen_position)
{
int* p;
test(p);
printf("%d\n", *p);
return 0;
}
void test(int* p)
{
p = malloc(sizeof(int));
*p = a;
}
Precisazione: nessun errore o warning in compilazione, ma la stampa di p da un valore errato. La memoria allocata nella funzione sembra che venga corrotta al momento della chiusura di essa, ma tutto ciò non dovrebbe accadere, probabilmente il problema è un altro che non riesco a capire.
Grazie a tutti per l'aiuto.
volevo chiedere come mai questo codice non funziona:
#include <stdio.h>
#include <stdlib.h>
void test(int*);
int a = 7;
int main(int argc, char** queen_position)
{
int* p;
test(p);
printf("%d\n", *p);
return 0;
}
void test(int* p)
{
p = malloc(sizeof(int));
*p = a;
}
Precisazione: nessun errore o warning in compilazione, ma la stampa di p da un valore errato. La memoria allocata nella funzione sembra che venga corrotta al momento della chiusura di essa, ma tutto ciò non dovrebbe accadere, probabilmente il problema è un altro che non riesco a capire.
Grazie a tutti per l'aiuto.