我试图找到与int myArray[n]等价的值,只是不知道没有输入n是什么。
下面的代码应该有效吗?(我需要使用kmalloc而不是malloc)。

int * pages;
//... later, after we find out n...
pages = (int *)kmalloc(npages * sizeof(int));

使用gdb调试时,值页[0]似乎不是0-这是预期的吗?

最佳答案

对。内存没有初始化,您只是得到一个指向内存块的指针。
您需要memset来初始化它:

memset(pages, 0, npages * sizeof(int));

另外,除非我弄错了,否则kmalloc需要一个second parameter,要分配的内存类型。

关于c - C-动态初始化数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1801215/

10-12 00:13
查看更多