StrInitStack

Table of Contents

StrInitStack

Description

Initialize given string but use memory from stack. Such strings cannot be dynamically resized!!

Parameters

NameDirectionDescription
strinString that needs to be initialized.
neinNumber of elements to allocate stack memory for.

Success

str

Failure

NULL

Usage example (Cross-references)

    #endif
    Str syserr;
    StrInitStack(syserr, SYS_ERROR_STR_MAX_LENGTH, {
    SysStrError(errno, &syserr);
    LOG_ERROR("Failed to get localtime : {}", syserr);
    LOG_STREAM_FALLBACK: {
    Str syserr;
    StrInitStack(syserr, SYS_ERROR_STR_MAX_LENGTH, {
    FWriteFmtLn(stderr, "Error opening log file, will write logs to stderr");
    });
    // Test StrInitStack macro
    bool test_str_init_stack(void) {
    WriteFmt("Testing StrInitStack\n");
    
    bool result = true;
    // Test with the actual StrInitStack macro
    Str stack_str;
    StrInitStack(stack_str, 20, {
    // Inside the scope where the stack string is valid
    StrPushBackZstr(&stack_str, "Hello, Stack!");
    StrWriteFmt(&m_, __VA_ARGS__);                                                                                 \
    Str syserr_;                                                                                                   \
    StrInitStack(syserr_, 256, {                                                                                   \
    SysStrError(errno, &syserr_);                                                                              \
    StrWriteFmt(&m_, " : {}", syserr_);                                                                        \
    StrWriteFmt(&m_, __VA_ARGS__);                                                                                 \
    Str syserr_;                                                                                                   \
    StrInitStack(syserr_, 256, {                                                                                   \
    SysStrError(errno, &syserr_);                                                                              \
    StrWriteFmt(&m_, " : {}", syserr_);                                                                        \
    StrWriteFmt(&m_, __VA_ARGS__);                                                                                 \
    Str syserr_;                                                                                                   \
    StrInitStack(syserr_, 256, {                                                                                   \
    SysStrError(errno, &syserr_);                                                                              \
    StrWriteFmt(&m_, " : {}", syserr_);                                                                        \

Share :