ListPtrAt
Description
Pointer to data in node at given index in given list
Parameters
| Name | Direction | Description |
|---|---|---|
l |
in | List to get data from. |
idx |
in | Index to get data at. |
Success
Pointer to data from node in list at given index
Failure
NULL
Usage example (Cross-references)
Usage examples (Cross-references)
- In
ListInt.c:192:
uint16_t idx = extract_u16(data, offset, data_size);
if (idx < ListLen(list)) {
volatile i32 *ptr = ListPtrAt(list, idx);
if (ptr) {
volatile i32 val = *ptr;- In
List.Access.c:72:
ListPushBackR(&list, 40);
bool result = ListPtrAt(&list, 0) && (*ListPtrAt(&list, 0) == 10);
result = result && ListPtrAt(&list, 3) && (*ListPtrAt(&list, 3) == 40);
result = result && (ListAt(&list, 1) == 20);- In
List.Access.c:73:
bool result = ListPtrAt(&list, 0) && (*ListPtrAt(&list, 0) == 10);
result = result && ListPtrAt(&list, 3) && (*ListPtrAt(&list, 3) == 40);
result = result && (ListAt(&list, 1) == 20);
result = result && (ListAt(&list, 2) == 30);
static bool test_list_ptr_at_empty_fails(void) {
WriteFmt("Testing ListPtrAt on empty list\n");
List(int) list = ListInit(get_test_alloc());
List(int) list = ListInit(get_test_alloc());
ListPtrAt(&list, 0);
return false;
static bool test_list_ptr_at_out_of_bounds_fails(void) {
WriteFmt("Testing ListPtrAt out of bounds\n");
List(int) list = ListInit(get_test_alloc()); List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListPtrAt(&list, 1);
return false;- In
Access.h:128:
#ifdef __cplusplus
# define ListAt(l, idx) (ListPtrAt((l), (idx)) ? *ListPtrAt((l), (idx)) : (LIST_DATA_TYPE(l) {0}))
#else
///
- In
Access.h:143:
/// TAGS: List, Access, API
///
# define ListAt(l, idx) (ListPtrAt((l), (idx)) ? *ListPtrAt((l), (idx)) : ((LIST_DATA_TYPE(l)) {0}))
#endif
Last updated on