2014-10-17 62 views
0

好的,這裏是我的問題。我第一次使用srand,我得到了「賦值使得整型指針沒有投射」警告。我已閱讀了這裏的許多主題,但我仍然沒有看到什麼是錯的。由於問題很長,我會發布相關部分。賦值使指針從整數沒有投 - rand()

聲明的溫控功能

void getFinalsRandom(int*, int*, int*); 

函數調用在主的()內功能

void getFinalsRandom(int *finalDay, int *finalTime, int *finalTimeSat) 
{ 
    srand(time(NULL)); 
    finalDay = rand() % 6; 
    finalTime = rand() % 5; 
    finalTimeSat = rand() % 4; 
} 

我還包括time.h中,stdio.h中

int finalsDayRandom; 
int finalsTimeRandom; 
int finalsTimeRandomSat; 

getFinalsRandom(&finalsDayRandom, &finalsTimeRandom, &finalsTimeRandomSat); 

實際代碼, stdlib.h,math.h

回答

3

你需要

*finalDay = rand() % 6; 
*finalTime = rand() % 5; 
*finalTimeSat = rand() % 4; 

更換

finalDay = rand() % 6; 
finalTime = rand() % 5; 
finalTimeSat = rand() % 4; 

由於目前是,你實際上是覆蓋指針與隨機數,而不是值的本地副本的指針

+0

哇,我確信我想,當我排除故障。我想也許我嘗試了。感謝一羣人立即解決它。 – 2014-10-17 15:35:24

+0

@CraigPlazony沒問題。如果他們解決了問題,請接受其中一個答案(答案旁邊的大複選框),以便人們知道你已經知道了答案。 – aruisdante 2014-10-17 15:37:12

4

不要在函數中調用srand,每次運行程序時調用一次。

然後改變你的函數是這樣的:

void getFinalsRandom(int *finalDay, int *finalTime, int *finalTimeSat) 
{ 
    *finalDay = rand() % 6; 
    *finalTime = rand() % 5; 
    *finalTimeSat = rand() % 4; 
}