You have 2 choices:
- You wan't to expose types internal structure: you need then to define the struct in the interface (i.e. the alsa_test.h file).
- You don't want to expose types internal structure: add functions in the interface to access structures fields
add in alsa_test.h
void set_alsa_card(struct alsa_device * alsa_dev_list, int dev_id, int card);
and in alsa_test.c
void set_alsa_card(struct alsa_device * alsa_dev, int dev_id, int card)
{
(alsa_dev + dev_id)->card = card;
}
main.c :
#include "alsa_test.h"
int main (int argc, char *argv[]) {
alsa_device *devices;
devices = create_alsa_array(50);
set_alsa_card(devices, 0, 1);
}