我试图找到与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/