[問題] 亂數設SEED
看板C_and_CPP (C/C++)作者kkroy (☆㊣↖煞氣ㄟ阿喂↘ξ★)時間16年前 (2010/01/29 17:08)推噓1(1推 0噓 10→)留言11則, 5人參與討論串1/2 (看更多)
我用的編譯器是 VS 2008
寫rand seed第一行compile就過不了,請大家指教:
#include<iostream>
using namespace std;
#include<stdlib.h>
#include<stdio.h>
#include"rand1.h"
#define SEED -2
double rand1(long *idum); //// rand1(.) 內容略 ////
long *idum;
idum = (long *)malloc(sizeof(long));
*idum = SEED;
int main(){
for(int i = 0; i<20; i++)
cout<< rand1(idum)<<endl;
system("pause");
return 1;
}
錯誤顯示:
error C4430: 遺漏型別規範 - 假設為 int。注意: C++ 不支援 default-int
error C2040: 'idum' : 'int' 和 'long *' 的間接取值層級不同
error C2440: '正在初始化' : 無法由 'long *' 轉換為 'int'
沒有可以進行此轉換的內容
error C4430: 遺漏型別規範 - 假設為 int。注意: C++ 不支援 default-int
error C2371: 'idum' : 重複定義; 基本型別不相同
error C2440: '正在初始化' : 無法由 'int' 轉換為 'int *'
從整數類資料型別轉換為指標型別必須有 reinterpret_cast、
C-Style 轉換或函式樣式轉換。
感覺我沒寫錯,一直說型態不對,
如果改成如下:
long idum = SEED;
然後 呼叫時 寫: rand1(&idum)
竟然就可以了?!!!!
也就是說我不用動態記憶配置,型態就不會錯? 怎會這樣?
請高手指點! 謝謝大家!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.144.18
→
01/29 17:13, , 1F
01/29 17:13, 1F
→
01/29 17:14, , 2F
01/29 17:14, 2F
推
01/29 17:58, , 3F
01/29 17:58, 3F
→
01/29 17:58, , 4F
01/29 17:58, 4F
→
01/29 18:02, , 5F
01/29 18:02, 5F
→
01/29 18:02, , 6F
01/29 18:02, 6F
→
01/29 18:04, , 7F
01/29 18:04, 7F
→
01/29 18:05, , 8F
01/29 18:05, 8F
→
01/29 18:07, , 9F
01/29 18:07, 9F
→
01/29 18:09, , 10F
01/29 18:09, 10F
→
01/29 18:19, , 11F
01/29 18:19, 11F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章