Abuse Melding

Je hebt een klacht over de onderstaande posting:

17-10-2006, 19:24 door Bitwiper

Ik zie net Niels z'n uitleg voor ik op verstuur drukte, maar ik stuur dit toch maar omdat ik Niels zo te zien aanvul op enkele punten. Door Anoniem op 17 oktober 2006 16:17 Is deze string nog gevult eigenlijk met 0 bytes ? Als we uitgaan van jouw C-code: char msg[] ="hello"; dan gaat het om een standaard ASCII C string. Een ASCII C string is -bij normaal gebruik- nooit gevuld met bytes die de waarde 0 hebben, want hij eindigt met zo'n byte met waarde 0 (als het goed is). Met jouw bovenstaande C source reserveert de compiler ergens minstens 6 bytes (5 voor "hello", 1 voor de afsluitende 0 en mogelijk 2 extra ongebruikte plaatsen om op een veelvoud van 4 uit te komen) in wat uiteindelijk je executable file wordt, en onthoudt het adres daarvan "in msg". Dat wil zeggen, overal in de source waar je naar "msg" refereert, vult de compiler dat adres in. Het is dus eigenlijk gewoon een label. In de call printf(msg); heeft printf bij aanvang geen idee hoe lang de string is; printf leest ...

Beschrijf je klacht (Optioneel):

captcha