func: cgiFormResultType cgiCookies(char ***result) char * * stringArray ; int i ; int total = 0 ; char * p ; char * n ; p = cgiCookie; while ( * p )  if ( * p == '=' )  total ++; p ++; stringArray = ( char * * ) malloc ( sizeof ( char * ) * ( total + 1 ) ); if ( ! stringArray )  for (i=0; (i <= total); i++) stringArray [ i ] = 0; i = 0; p = cgiCookie; while ( * p )  while ( * p && isspace ( * p ) )  p ++; n = p; while ( * p && ( * p != '=' ) )  p ++; if ( p != n )  stringArray [ i ] = ( char * ) malloc ( ( p - n ) + 1 ); if ( ! stringArray [ i ] )  cgiStringArrayFree ( stringArray ); stringArray [ i ] [ p - n ] = '\0'; i ++; while ( * p && ( * p != ';' ) )  p ++; if ( ! * p )  if ( * p == ';' )  p ++; void cgiStringArrayFree(char **stringArray) char * * arrayItself = stringArray ; free ( arrayItself ); 