> Sarebbe interessante sapere come, mostra la tua soluzione![]()
char *msg;
int main(int argc, char *argv[])
{
if ( ! messaggio( msg ) )
{
printf( "messaggio ha ritornato un valore...\n" );
if ( msg )
printf( "VALORE : [%s]\n", msg );
else
printf( "[MAIN] - qlc non va!\n" );
}
else
printf( "allocazione non riuscita!..." );
free( msg );
return 0;
}
la funzione messaggio risiede in un altro file.
int messaggio( char *testo )
{
int iRet = 0;
const char mess[] = "stringa assegnata dalla funzione.";
extern char *msg;
/*
** viene allocato lo spazio per
** scrive il messaggio.
*/
msg = (char*)malloc( 100 * sizeof( char ) );
memset( msg, '\0', 100 );
/*
** controllo se l'allocazione della
** memoria ha avuto successo.
*/
if ( msg != NULL )
{
printf( "stringa allocata : [%s]\n", msg );
printf( "da copiare : [%s]\n", mess );
memcpy( msg, mess, strlen( mess ) + 1 );
printf( "copiato : [%s]\n", testo );
return 0;
}
else
return 1;
}
ecco qua!!!![]()

Rispondi quotando