1、随机数的产生
使用srand和rand函数。srand就是给rand函数提供种子seed,如果seed值不变,那么rand函数产生的随机数值就不会改变。所以可以使用srand( (unsigned)time( NULL )
srand函数是void srand(unsigned seed) 初始化随机数发生器。
rand(void)用于产生一个伪随机unsigned int 整数。
srand(seed)用于给rand()函数设定种子。
srand 和 rand 应该组和使用。一般来说,srand 是对 rand 进行设置。
比如:
srand((UINT)GetCurrentTime());
int x = rand() % 100; 是生成 0 到 100 之间的随机数。
#include <iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int main()
{
int x;
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
x=rand()%10;
cout<<x<<" ";
}
cout << endl;
return 0;
}
2、calloc() 函数用来动态地分配内存空间并初始化为 0,其原型为:
void* calloc (size_t num, size_t size);
calloc() 在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。所以它的结果是分配了 num*size 个字节长度的内存空间,并且每个字节的值都是0。
【返回值】分配成功返回指向该内存的地址,失败则返回 NULL。
calloc() 与 malloc() 的一个重要区别是:calloc() 在动态分配完内存后,自动初始化该内存空间为零,而 malloc() 不初始化,里边数据是未知的垃圾数据。下面的两种写法是等价的:
// calloc() 分配内存空间并初始化
char *str1 = (char *)calloc(10, 2);
// malloc() 分配内存空间并用 memset() 初始化
char *str2 = (char *)malloc(20);
memset(str2, 0, 20);
参考http://c.biancheng.net/cpp/html/134.html