Mi serviva una funzione per immettere dei dati numerici liberamente.
Allora mi servo di questa funzione parsestring:

codice:
int ParseString(char * s, int * a, int * nMin, int * nMax)
{
	int nRet = 0;
	int i = 0;
	int j = 0;
	char strInt[12];
	int num;

	while ( 1 )
	{
		/*
		if ( isdigit( *(s + i) ) )
		{
			*(strInt + j) = *(s + i);
			++j;
		}
		*/
		if ( isdigit( *(s + i) ) || *(s + i) == '-' )
		{
			if ( (*(s + i) == '-') && (i > 0) )
			{
				if ( *(s + i - 1) != ' ' )
					return 0;
			}

			*(strInt + j) = *(s + i);
			++j;
		}
		else if ( *(s + i) == ' ' || *(s + i) == '\0' )
		{
			*(strInt + j) = '\0';
			if ( strlen(strInt) > 0 )
			{
				if ( a )
				{
					num = atoi(strInt);
					a[nRet] = num;
					if ( nRet == 0 )
					{
						*nMin = num;
						*nMax = num;
					}
					else
					{
						*nMin = num < *nMin ? num : *nMin;
						*nMax = num > *nMax ? num : *nMax;
					}
				}
				++nRet;
				j = 0;
				*strInt = '\0';
			}
		}
		else
		{
			return 0;
		}

		if ( *(s + i) == '\0' )
			break;

		++i;
	}

	return nRet;
}
int ParseString(char * s, int * a, int * nMin, int * nMax)

viene dichiarato un puntatore a int di nome a

ma quando si usa if(a) significa che viene verificato se l'indirizzo di memoria del puntatore a e' diverso da zero?

E poi e' scritto a[nRet] = num; ma a non era stato dichiarato come array,ma come puntatore.

Sapete come mai?