diff options
author | haturatu <warsaw21g@gmail.com> | 2024-06-15 13:45:47 +0900 |
---|---|---|
committer | haturatu <warsaw21g@gmail.com> | 2024-06-15 13:45:47 +0900 |
commit | 18bdc2b4d4adeff5565ff208243b75e4f8ebbae5 (patch) | |
tree | 8ea15a8962b4605614530dd8c21cff52c8a66efd |
-rw-r--r-- | README.md | 1 | ||||
-rw-r--r-- | bugcode.c | 36 |
2 files changed, 37 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..2fc90b9 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# charbugcodec diff --git a/bugcode.c b/bugcode.c new file mode 100644 index 0000000..c5fd8ae --- /dev/null +++ b/bugcode.c @@ -0,0 +1,36 @@ +#include <stdio.h> + +/* trap code +int my_read_char(const char *buffer, size_t *offs) { + if (buffer[*offs] != '\0') { + return buffer[*offs++]; + } else { + return EOF; + } +} +*/ + +int my_read_char(const char *buffer, size_t *offs) { + if (buffer[*offs] != '\0') { + return (unsigned char) buffer[(*offs)++]; + } else { + return EOF; + } +} + +int main() { + const char *buffer = "Hello, World!"; + size_t offs = 0; + + printf("Reading characters from buffer:\n"); + while (1) { + int ch = my_read_char(buffer, &offs); + if (ch == EOF) { + break; + } + printf("Character read: %c, offs: %zu\n", ch, offs); + } + + return 0; +} + |