1

私はやろうとしています

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

生産する

エラー: 'idt_entry_t (*)[256] {aka idt_entry_struct ( )[256]}' を 'u8int {aka unsigned char*}' に変換できません (引数 '1' から 'void memset(u8int*, u8int, u32int)' へ)

それが役立つ場合、それは でラップされた C コードですextern "C" {...}

ありがとう!

4

3 に答える 3

2

これをC++としてコンパイルしていますか?

キャストを追加します。

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

于 2012-01-28T00:53:37.383 に答える
1

idt_entriesの配列 256 ですidt_entry_t

配列の値は、idt_entriesその最初の要素へのポインターです。この値を の最初の引数として使用しますmemset。配列のサイズは ですsizeof idt_entries

memsetしたがって、すべての配列要素を 0 に設定するために正しく呼び出す方法は次のとおりです。

memset(idt_entries, 0, sizeof idt_entries);
于 2012-01-28T00:41:57.037 に答える
0

idt_entriesはすでにポインターです。アンパサンドを削除します。

memset (idt_entries, 0, sizeof(idt_entry_t)*256);
于 2012-01-28T00:39:12.153 に答える