C 03 隨機數和記憶體開闢

2021-10-25 03:54:40 字數 2008 閱讀 8352

初始化隨機發生器:srand(null)srand((unsigned)time(null))

呼叫函式:rand()

問題:srand(null)初始化發生器時每次隨機數都是一樣的。

解決:初始化隨機發生器時呼叫**srand((unsigned)time(null))**,每次發生器都是當前時間,所以隨機數不會再一樣了。

int main()
靜態記憶體開闢

void staticlloc()

}// 靜態記憶體開闢

int main()

getchar();

}

開闢記憶體:mallocint* arr = (int*)malloc(sizeof(int)*num);釋放記憶體:freefree(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...