Implemented filling dynamics arrays with normal array data
This commit is contained in:
parent
f22c7c1a73
commit
0722bcf51b
2 changed files with 27 additions and 0 deletions
16
examples/da_from_array.c
Normal file
16
examples/da_from_array.c
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#define LAZY_IMPL
|
||||||
|
#include "../lazy.h"
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
float xs[] = {1, 2, 3, 4};
|
||||||
|
Lz_DA(float) nums = {0};
|
||||||
|
lz_da_fill_from_array(&nums, xs);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < nums.cnt; ++i) {
|
||||||
|
printf("%f\n", nums.data[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
11
lazy.h
11
lazy.h
|
|
@ -130,6 +130,17 @@ long long lz_slc_atoll(Lz_Slc *src);
|
||||||
for (T *name = (da).data; name-(da).data < (da).cnt; ++name)
|
for (T *name = (da).data; name-(da).data < (da).cnt; ++name)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef lz_da_fill_from_array
|
||||||
|
#define lz_da_fill_from_array(p_da, arr) do {\
|
||||||
|
free((p_da)->data);\
|
||||||
|
size_t cnt = sizeof(arr)/sizeof(*arr);\
|
||||||
|
(p_da)->cap = cnt;\
|
||||||
|
(p_da)->cnt = cnt;\
|
||||||
|
(p_da)->data = malloc(sizeof(arr));\
|
||||||
|
memcpy((p_da)->data, arr, sizeof(arr));\
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef LZ_SB_DEFINITION
|
#ifndef LZ_SB_DEFINITION
|
||||||
#define LZ_SB_DEFINITION
|
#define LZ_SB_DEFINITION
|
||||||
typedef Lz_DA(char) Lz_SB;
|
typedef Lz_DA(char) Lz_SB;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue