我想做的是
memset(&idt_entries, 0, sizeof(idt_entry_t)*256);产
错误:不能将参数'1‘的'idt_entry_t (*)256 {aka idt_entry_struct ()256}’转换为'u8int {aka无符号字符*}‘为'void (u8int*,u8int,u32int)’“。
如果有帮助的话,它就是在extern "C" {...}中运行的C代码。
谢谢!
发布于 2012-01-28 00:41:57
idt_entries是idt_entry_t的256个数组。
数组idt_entries的值是指向其第一个元素的指针。将此值用作memset的第一个参数。数组的大小是sizeof idt_entries。
因此,下面是如何正确调用memset将所有数组元素设置为0:
memset(idt_entries, 0, sizeof idt_entries);发布于 2012-01-28 00:53:37
您是否将其编译为C++?
加一个演员。
memset ((u8int*)idt_entries, 0, sizeof(idt_entry_t)*256);
发布于 2012-01-28 00:39:12
idt_entries已经是一个指针。移除符号:
memset (idt_entries, 0, sizeof(idt_entry_t)*256);https://stackoverflow.com/questions/9041918
复制相似问题