初始化隨機發生器:srand(null)
srand((unsigned)time(null))
呼叫函式:rand()
問題:srand(null)
初始化發生器時每次隨機數都是一樣的。
解決:初始化隨機發生器時呼叫**srand((unsigned)time(null))
**,每次發生器都是當前時間,所以隨機數不會再一樣了。
int main()
靜態記憶體開闢
void staticlloc()
}// 靜態記憶體開闢
int main()
getchar();
}
開闢記憶體:malloc
int* arr = (int*)malloc(sizeof(int)*num);
釋放記憶體:free
free(arr)
不要反覆去釋放,那塊位址一旦被釋放,就有可能會被新的應用占用,不要去再次釋放。
void dynamiclloc()
//動態記憶體開闢
// 排序 堆排序(4個小時),快排序
free(arr);
getchar();
}
列印結果
請輸入數的個數:3
請輸入第0個的值:2
2,0000000000ae1440
請輸入第1個的值:5
5,0000000000ae1444
請輸入第2個的值:10
10,0000000000ae1448
// 改變記憶體空間大小
int main()
printf("開闢記憶體的指標:%p\n",arr);
// 再加點記憶體
printf("請輸入新增的個數:");
// 獲取使用者新輸入的值
int new_num;
scanf("%d",&new_num); // 5
// 原來那塊記憶體的指標,總的大小(原來的大小+新的大小)
int* new_arr = (int*)realloc(arr,sizeof(int)*(num+new_num));
if(new_arr)
printf("新開闢記憶體的指標:%p\n",new_arr);
// 列印陣列
int i = 0;
for(; i < (num + new_num); i++)
}if(new_arr) else
// 不要反覆去釋放,那塊位址一旦被釋放,就有可能會被新的應用占用,不要去再次釋放。
// free(new_arr);
// 工作 c/c++ 精通
getchar();
}
列印結果:
請輸入數的個數:2
開闢記憶體的指標:0000000000b81440
請輸入新增的個數:1
新開闢記憶體的指標:0000000000b81440
隨機數生成 偽隨機數和真隨機數
c語言隨機數的生成,很隨機,又不隨機,比如像下面的程式 c語言生成隨機數的函式在stdlib.h庫中 include includeint main return 0 上面的 經過執行生成了 41 18467 6334 26500但是無論執行多好遍結果都是一樣的,隨機數並不隨機。這是因為rand 函...
隨機數 科普 真隨機數和偽隨機數
位元幣使用者很喜歡討論 非對稱加密 橢圓曲線 量子計算機 這類高深莫測的話題,然後再以一種非常莫名其妙的方式把幣弄丟,比如說 隨機 隨機很重要,對於位元幣這種密碼學電子貨幣來說,尤其重要。可惜社群內對於隨機的討論並不多,導致很多人缺乏正確的認識,因此,我們今天就和大家聊聊隨機。說到隨機,有兩個必須要...
C 產生隨機數,隨機序列和隨機分布
1.產生 0 n 1 區間的乙個隨機整數 2.產生乙個 0 1 區間的隨機小數 3.產生乙個 0 n 1 區間的隨機序列 常用於ransac 4.產生服從某個分布的概率隨機數 1.產生 0 n 1 區間的乙個隨機整數 include include using namespace std intma...