Je veux convertir le code ci-dessous pour C#:C++ C# déclaration de tableau
struct Elf32_Ehdr {
uint8 e_ident[16]; // Magic number and other info
uint16 e_type; // Object file type
uint16 e_machine; // Architecture
uint32 e_version; // Object file version
uint32 e_entry; // Entry point virtual address
uint32 e_phoff; // Program header table file offset
uint32 e_shoff; // Section header table file offset
uint32 e_flags; // Processor-specific flags
uint16 e_ehsize; // ELF header size in bytes
uint16 e_phentsize; // Program header table entry size
uint16 e_phnum; // Program header table entry count
uint16 e_shentsize; // Section header table entry size
uint16 e_shnum; // Section header table entry count
uint16 e_shstrndx; // Section header string table index
};
Apparemment, elle correspond à boîtier différent. uint16 -> UInt16
uint32 -> UInt32
uint64 -> UInt64
Et apparemment, cartes uint8 à octet.
Le problème est:
Byte e_ident[16]; // Magic number and other info<br />
ne compilera pas, il est dit: la taille de tableau ne peut pas être déclaré dans la déclaration des variables ...
Quoi, pas de tableau de taille fixe sans nouvelle?
Est-ce exact de mapper à ceci:
Byte[] e_ident = new Byte[16]; // Magic number and other info
ou se qui se révèlent tout à fait tort?
Il ne compile pas, mais la réponse la plus élevée a été votée. Lieu étrange, n'est-ce pas? –
@Hans, c'était de mémoire, c'est ce que // le drapeau non testé est pour. Je n'ai jamais prétendu/prétendu compilé. Cela semble fonctionner comme un pointeur cependant. Et vous étiez tout simplement en retard de 3 heures (-: –
Je sais, un peu grincheux cet après-midi, j'ai supprimé un tas de bonnes réponses, des choses compilées. –