Avatar billede macpain Nybegynder
11. december 2003 - 18:48 Der er 2 kommentarer og
1 løsning

NULL terminerings problem!!

Jeg håber der er nogen der kan hjælpe mig med et "lille" problem---håber samtidig jeg kan forklare det ordentligt.

Jeg har laver bit-allokering hvor jeg har risikere at komme udfor at få kombinationen (en byte) med 00000000 det tolker c++ som værende en NULL terminering både med memcpy, strcpy osv.
Problemet kommer så når jeg efter følgende ligger data ind og gemmer dette på disken vha. en stream funktion.... hva skal man gøre for at undgå dette. Nej, jeg kan ikke lave min terminering om til fek.s. 11111111, da dette går ud over en standard der SKAL overholdes.

Data bliver lagt over på følgende måde inden det streames til disk:
memmove(m_frameChar+ALLOKATIONSBIT_SKALERINGSFAKTORER
,lokalFrame,slutPaaString);

hvor m_frameChar indeholder den famøse terminering.

Hvis i mener det er til flere point så må vi se på det...
Avatar billede arne_v Ekspert
11. december 2003 - 18:51 #1
strxxx terminerer på nul byte

memxxx terminerer *ikke* på nul byte

visse text IO funktioner terminerer på nul byte

binary IO funktioner terminerer aldrig på nul byte

memcpy eller memmove
fopen med "rb" og "wb"
fread og fwrite

så bør der ikke være noget problem med nul bytes.
Avatar billede macpain Nybegynder
11. december 2003 - 18:54 #2
må lige kigge på det en ekstra gang....
Avatar billede arne_v Ekspert
26. december 2003 - 16:28 #3
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester