Forum » Programiranje » [c] memcpy
[c] memcpy
slovencl ::
A mi lahko prosim nekdo razloži, zakaj zgornja koda ne deluje, spodnja pa?
LP, K
uint32_t dolzina;
memcpy(&dolzina, &buf[15], 4);
printf("dolzina1 je: %i\n", dolzina); // rezultat je vedno 0
dolzina=buf[18]*256*256*256 + buf[17]*256*256 + buf[16]*256 + buf[15];
printf("dolzina2 je: %i\n", dolzina); // izpise pravo vrednost
LP, K
- spremenil: slovencl ()
sas084 ::
Vprašnje je kakšne tipe maš v bufferju. Z memcopy kopiraš 4 bajte, če maš buffer definiran kot
uint32_t buff[]in maš 0 na buf[15] potem je jasno zakaj je tak rezultat.
slovencl ::
Buf je definiran kot:
Ne, buf[15-18] ni 0. dolzina2 da pravo vrednost.
BTW, obratno pa deluje brez problema: memcpy(&buf[15], &dolzina, 4);
LP, K
unsigned char buf[500];
Ne, buf[15-18] ni 0. dolzina2 da pravo vrednost.
BTW, obratno pa deluje brez problema: memcpy(&buf[15], &dolzina, 4);
LP, K
Tutankhamun ::
uint32_t dolzina;
unsigned char buf[500];
buf[18] = 0x00;
buf[17] = 0x00;
buf[16] = 0x00;
buf[15] = 0x01;
memcpy(&dolzina, &buf[15], 4);
printf("dolzina1 je: %i\n", dolzina);
dolzina=buf[18]*256*256*256 + buf[17]*256*256 + buf[16]*256 + buf[15];
printf("dolzina2 je: %i\n", dolzina);
Izpis:
dolzina1 je: 1
dolzina2 je: 1
Meni dela :D
AMD Phenom QUAD 9950 Black Edition, 8GB
slovencl ::
Hvala, vse je v redu :)
Spet butasta napaka... v memcpy(&dolzina, &buf[15], 4); sem narobe napisal dolzina... imel pa sem drugo spremenljivko s tem istim napačnim imenom, zato mi ni javilo nobene napake
Spet butasta napaka... v memcpy(&dolzina, &buf[15], 4); sem narobe napisal dolzina... imel pa sem drugo spremenljivko s tem istim napačnim imenom, zato mi ni javilo nobene napake
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | [C++] problem z binarnimi datotekamiOddelek: Programiranje | 1060 (925) | mallard |
| » | C strukture, kazalci naloga pomocOddelek: Programiranje | 1577 (1472) | DavidJ |
| » | [C/C++] pointerji in referenceOddelek: Programiranje | 2144 (1968) | Matako |
| » | Pointer-ji v C-juOddelek: Programiranje | 1900 (1598) | rokpok |
| » | Coding StyleOddelek: Programiranje | 3713 (2905) | 64202 |