Toon posts:

[C#] Int als pointer??

Pagina: 1
Acties:

Verwijderd

Topicstarter
Mijn probleem:

Ik heb een int en die wil ik als pointer naar een byte array gebruiken... Hoe doe ik dit ??? het lukt me niet het adres van een byte* ptr te veranderen.

dus stel normaal zou je zoiets in C kunnen doen (ff uit mn hoofd hoor :P )

int adres = 1200; //natuurlijk het adres dat uit unmanaged code komt
byte[] Henk;
&Henk = adres; (of henk[0]=adres; , dat weet ik zo niet meer)

Komt er op neer dat je met Henk gewoon vanaf adres 1200 het geheugen raw kunt uitlezen... maar ik ben bang dat dit niet kan?????

  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

Even voor de goede orde, je wilt dus dit:
C:
1
2
3
4
5
int adres = 1200;
byte * Henk = (byte*)adres;

Henk[0] = 3; // schrijft naar adres 1200
Henk[1] = 4; // schrijft naar adres 1201


Dat kan prima met bovenstaande code in C# (de syntax is identiek als ik me niet vergis), maar dan wel in een unsafe blok.

[ Voor 3% gewijzigd door .oisyn op 03-04-2007 16:18 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
.oisyn schreef op dinsdag 03 april 2007 @ 16:17:
Even voor de goede orde, je wilt dus dit:
C:
1
2
3
4
5
int adres = 1200;
byte * Henk = (byte*)adres;

Henk[0] = 3; // schrijft naar adres 1200
Henk[1] = 4; // schrijft naar adres 1201


Dat kan prima met bovenstaande code in C# (de syntax is identiek als ik me niet vergis), maar dan wel in een unsafe blok.
Danku!!!! goh eigenlijk is het zo simpel... ik zat in hele andere hoeken te zoeken.. !!!! ik ben geholpen _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_ _/-\o_

  • DrDelete
  • Registratie: Oktober 2000
  • Laatst online: 01-12 20:46
biedt de Marshall class nog wat extra's ?

  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ja daarmee kun je een copy doen tussen unmanaged mem en managed arrays. Zie Managed.Copy(). Je kunt ook individuele datatypes inlezen en schrijven via Managed.Read*() en Managed.Write*(), maar dat lijkt me niet heel erg efficient als je grote stukken mem moet accessen.

[ Voor 49% gewijzigd door .oisyn op 03-04-2007 16:27 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.