Karl Coder
문제
Karl is an aspiring C programmer, and is excited by the risks and rewards of low-level manual memory management. In the program he currently develops, he stores a string containing non-zero bytes into a buffer named "
buf". By mistake he accidentally made the buffer bytes in size. The last bytes of the buffer consists of only zero-bytes.
Now Karl needs to know the value , the size of the string, in a separate part of the program. Traditionally you would recover the length of a string using the strlen-function, which reports the position of the first zero-byte in the provided buffer using a linear scan. However, Karl finds that this is much too slow, and that it defeats the advantage of using C in the first place. Can you help Karl efficiently recover without crashing his program?
The contents of the buffer in sample interaction 3 are shown here.
예제
예제 1
65 0
buf[1] buf[2] strlen(buf) = 2
예제 2
50 0 Segmentation fault (core dumped)
buf[1] buf[5] buf[7]
예제 3
78 67 80 67 Too many reads
buf[0] buf[1] buf[2] buf[3] buf[4]