Random_int(a,n)做什么,以及如何在代码中使用它

What does random_ints(a,N) do and how do I use it in my code?

本文关键字:代码 什么 int Random      更新时间:2023-10-16

http://developer.download.nvidia.com/cuda/cuda/training/gtc_express_sarah_sarah_tariq_june2011.pdf

在上面的教程(幻灯片29)中,它们启动了3个指针:

int *a, *b, *c;

显然这是类型(int *),但它们以某种方式使内核可以使用语法a[index]

访问其索引

他们还使用一些(对我)未知命令来初始化其值:

a = (int *)malloc(size); random_ints(a, N);

那么这个命令做什么?首先,它将指针 *a施放为int(但后来在 a上神奇地成为向量)。我找不到有关Random_int的任何来源(并且我的编译器都无法识别它,因为它可能需要一些)。我想它使a成为具有随机ints的长度n的向量(尽管aint类型)。

我尝试通过使用vector <int> * a;等做同样的事情来解决此问题,但是我仍然很难将其传递给我的内核(无论我尝试什么,它都不会添加元素)。

我在C 工作。预先感谢。

编辑:这可以是伪代码吗?因为明确的C 示例以不同的(可理解的方式)

这样做
  • 您可以像普通数组一样使用C/C 中的指针。请参阅:

示例

int* p = new int[2];
p[1] = 2;  
*(p + 1) = 2; // same as line above - just other syntax
*(1 + p) = 2; // and other way
 1[p] = 2; // don't use it - but still valid
  • 您可以在C 中通过malloc分配内存(它是从C方式派生的),但仅用于POD类型,例如int

示例

int* p = (int*)malloc(12 * sizeof(int)); // C way equivalent to C++: new int [12]

请注意,您必须通过free(p)而不是delete [] p释放此指针。

  • 我猜该功能的实现只是将n个随机数分配给由指针表示的int数组:

示例:

void random_ints(int* a, int N)
{
   int i;
   for (i = 0; i < N; ++i)
    a[i] = rand();
}