io ho avuto una "strana" esperienza con rand(), che non mi spiego e vorrei comprendere.
Ho del codice c che richiede l'uso di numeri casuali, basato sull'uso della funzione rand, che viene richiamato da java tramite JNI.
Se eseguo il codice da solo, ovvero non richiamandolo da Java, RAND_MAX vale (ho verificato sia nella libreria sia stampando su consolle il valore) 0x7FFFFFFF (2147483647) e i numeri generati da rand() effettivamente variano da 0 a 2147483647.
Se eseguo il codice richiamandolo da Java tramite JNI RAND_MAX continua a valere 2147483647 (ne ho fatto stampare il valore con la printf) ma rand() genera valori da 0 a 32767.
Sapreste darmi una spiegazione?