Skip to content

libls/vec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LS Vector

Minimal, single-header dynamic array (vector) for C.

  • Type-safe via macro code generation (not macro function calls)
  • ANSI C
  • Header-only
  • Dynamic resizing
  • Configurable memory allocators

Quick Start

  1. Copy ls_vec.h to your project.

  2. Define any number of vector types:

    LS_VEC_INLINE(int, int_vector)

    OR for separate declaration/implementation:

    // In header:
    LS_VEC_DECL(int, int_vector)
    
    // In source file:
    LS_VEC_IMPL(int, int_vector)
  3. Use the vector with normal C function calls:

    int_vector vec;
    int_vector_init(&vec);
    if (!int_vector_push(&vec, 42)) {
        // push failed, allocation failure, handle that here
    }
    // Access elements via vec.data[i]
    // Check size via vec.size
    int_vector_free(&vec);

See ls_vec.h for detailed documentation and usage patterns.

Custom Memory Allocators

Configure custom allocators by defining these macros before including the header:

#define LS_REALLOC my_realloc
#define LS_FREE my_free
#include "ls_vec.h"

The allocators must behave exactly like standard realloc and free.

See ls_vec.h for detailed documentation and usage patterns.

License

MIT.

Links

About

Type-safe ANSI C vector (dynamic array)

Topics

Resources

License

Stars

Watchers

Forks