A stack buffer can hold a small generated string when the program writes a terminator.

Stack Buffer

stack_buffer.c
#include <stdio.h>

int main(void) {
    int limit = ;
    char buffer[6] = {0, 0, 0, 0, 0, 0};

    for (int i = 0; i < limit; i++) {
        buffer[i] = (char)('A' + i);
    }
    buffer[limit] = '\0';

    printf("text=%s length=%d\n", buffer, limit);
    return 0;
}
#include <stdio.h>

int main(void) {
    int limit = ;
    char buffer[6] = {0, 0, 0, 0, 0, 0};

    for (int i = 0; i < limit; i++) {
        buffer[i] = (char)('A' + i);
    }
    buffer[limit] = '\0';

    printf("text=%s length=%d\n", buffer, limit);
    return 0;
}
#include <stdio.h>

int main(void) {
    int limit = ;
    char buffer[6] = {0, 0, 0, 0, 0, 0};

    for (int i = 0; i < limit; i++) {
        buffer[i] = (char)('A' + i);
    }
    buffer[limit] = '\0';

    printf("text=%s length=%d\n", buffer, limit);
    return 0;
}
capacity The buffer has room for data characters plus the terminating zero byte.
terminator Writing `'\0'` turns the filled characters into a C string.