Originariamente inviato da XWolverineX
...

Avete altre spiegazioni?
Ulteriori spiegazioni no ma un esempio ( ...pratico come piace a me... ) :

Programma 'figlio' "Int_main.cpp" :
codice:
 /**
 	* Nome file : "Int_main.cpp"
 	*
 	**/

#include <process.h>
#include <stdlib.h>
#include <stdio.h>

int main( int argc, char *argv[] )
{
	int a;
	if( argc == 0 ) return 999;
	a = atoi(argv[1]);
	a *= 2;
	return a;
}
Programma 'padre' "Int_main_Parent.cpp" :
(questo mi funziona solo con il BCC32, con il GCC mi va in crash ... Magari tu riesci a farlo funzionare. )
codice:
 /**
 	* Nome file : "Int_main_Parent.cpp"
 	*
 	**/

#include <process.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main( int , char *argv[] )
{
   unsigned int numero, result;
   char *parametro, *digit;
   do
   {
   	printf("\nInserisci un numero da passare (0 per uscire): ");
   	scanf("%s", digit);
		numero = atoi(digit);
		if(numero>0 )
		{
   		itoa(numero, parametro, 10);
   		printf("\nPasso il valore : %s", parametro);
   		result = spawnl(P_WAIT, "Int_main.exe", argv[0], parametro, NULL);
   		if (result == -1)
   		{
	      	perror("Error from spawnl");
	   		getch();
      		exit(1);
   		}
   		else
		   	printf("\nValore di ritorno : %i\n", result);
	   }
   } while(digit[0] != '0' );
   return 0;
}
Originariamente inviato da Ikitt
...
void main() -> pre standard, discutibile, i compilatori lo fanno ancora passare ma sarebbe deprecato
...
Quoto