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 | 1061 (926) | mallard | 
| » | C strukture, kazalci naloga pomocOddelek: Programiranje | 1577 (1472) | DavidJ | 
| » | [C/C++] pointerji in referenceOddelek: Programiranje | 2145 (1969) | Matako | 
| » | Pointer-ji v C-juOddelek: Programiranje | 1900 (1598) | rokpok | 
| » | Coding StyleOddelek: Programiranje | 3713 (2905) | 64202 |