Я создаю программу, которая изменяет динамический массив. Он должен инициализировать массив и иметь возможность вставлять в него. После этого я не смог распечатать массив, чтобы проверить его, как бы я это сделал?C - Печать динамического массива
Кусок соответствующего кода:
typedef struct {
char first;
char second;
} name;
typedef struct {
int number;
name name;
} data;
/*points to array, number allocated, number used*/
typedef struct {
data *info;
size_t numof;
size_t numused;
} list;
void init(list *l) {
l->data = malloc(sizeof(l) * l->numof);
l->numused = 0;
l->numof = 2;
}
int insert(list *l, const data *dat) {
if (l->numused == l->numof) {
l->numof *= 2;
l->data = (int *)realloc(l->data, l->numof * sizeof(int));
}
l->data[l->numused++] = *dat;
return 0;
}
int main(void) {
int i;
list l;
data list1;
/*example info for testing*/
list.number = 1234;
strcpy(list1.name.first, "abc");
strcpy(list1.name.second, "xyz");
init(&l);
insert(&l, list1);
/*runs through array elements to print*/
for (i=0; i < ((int)sizeof(&l)) /(int)sizeof(&l); i++) {
printf("%s\n", list1);
}
return 0;
}
Edit: Мне просто нужно знать, как напечатать массив, чтобы увидеть, если я делаю это правильно, приведенный выше код будет иметь ошибки, как я был Мессинг вокруг пытаясь понять это.
Вы пробовали какой-либо входной выход в нем? – ameyCU
@ameyCU Нет, просто используйте имя примера и номер в основном, чтобы посмотреть, работает ли он. –
Код, который вы отправили, не компилируется, легче найти ошибки, если вы разместите рабочий фрагмент кода. – BobRun