首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将'idt_entry_t (*)[256]转换为u8int*

无法将'idt_entry_t (*)[256]转换为u8int*
EN

Stack Overflow用户
提问于 2012-01-28 00:35:52
回答 3查看 284关注 0票数 1

我想做的是

代码语言:javascript
复制
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代码。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-28 00:41:57

idt_entriesidt_entry_t的256个数组。

数组idt_entries的值是指向其第一个元素的指针。将此值用作memset的第一个参数。数组的大小是sizeof idt_entries

因此,下面是如何正确调用memset将所有数组元素设置为0:

代码语言:javascript
复制
memset(idt_entries, 0, sizeof idt_entries);
票数 1
EN

Stack Overflow用户

发布于 2012-01-28 00:53:37

您是否将其编译为C++?

加一个演员。

memset ((u8int*)idt_entries, 0, sizeof(idt_entry_t)*256);

票数 2
EN

Stack Overflow用户

发布于 2012-01-28 00:39:12

idt_entries已经是一个指针。移除符号:

代码语言:javascript
复制
memset (idt_entries, 0, sizeof(idt_entry_t)*256);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9041918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档