Question

Comment puis-je convertir un INT vers un octet * à un certain index dans un octet *?

Idéalement, je voudrais avoir quelque chose comme:

unsafe{
    byte* igm=stackalloc byte[8];
    igm[4]=4283;
}

Il définirait la première partie du bit sur IgM [4] et le reste dans IgM [5].

Edit: Je me rends compte qu'il peut y avoir beaucoup de moyens possibles de gérer cela, je suis à la recherche de la manière la plus efficace possible.

Était-ce utile?

La solution

Essayez ceci:

unsafe
{
    byte* igm = stackalloc byte[8];
    *(int*)(igm + 4) = 4283;
}

Une fois que vous avez réalisé que vous pouvez utiliser un pointeur simple arithmétique pour indexer n'importe où dans votre réseau d'octets, les choses sont beaucoup plus faciles.

Autres conseils

Le système de type en C # vous empêchera de le faire, comme vous l'avez peut-être remarqué.Cependant, vous pouvez lancer vos indications pour être les types d'approximation:

    unsafe
    {
        byte* igm = stackalloc byte[8];
        int* intPtr = (int*)igm;
        intPtr[1] = 4283;
    }

Vous devez casser votre INT vers le nombre d'octets généracodiCodeTagcode et définir manuellement ces pièces à votre octet * à des index spécifiés.

Cela sera plus sûr car vous saurez quoi et où vous placez vos données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top