DESC Some compiler versions have problem with declaring a variable just before using it, so this patch converts threads to a pointer and create it using malloc(). EDESC Some older compiler versions complain about "threads" being declared in the middle of main(), so this patch makes "threads" a pointer and allocates it using malloc() after we know the number of threads we're going to run. Thanks to Ron Burkey for noticing this and letting me know.