#include<stdlib.h>
#include <stdio.h>
#include <string.h>
struct t {
int value;
};
int main (void) {
struct t *a = malloc(6*sizeof(struct t));
struct t *b = malloc(sizeof(struct t));
struct t *c = malloc(sizeof(struct t));
c->value = 100;
struct t *d = malloc(sizeof(struct t));
d->value = 100;
struct t *e = malloc(sizeof(struct t));
e->value = 100;
memcpy(b, a, sizeof(*a));
int j = 0;
while (j<6){
a[j] = *c;
j++;
}
int t = 0;
while(t < 6){
free(&a[t]);
t++;
}
free(a);
}
Я пытаюсь освободить элементы внутри массива один за другим. Но этот код не может быть запущен, поэтому я думаю, что что-то может быть не так со свободным во втором, пока l oop. После того, как я изменил второе, в то время как l oop на:
while(t < 6){
printf("%d",a[t].value);
t++;
}
Это будет работать. Любая идея, как я могу освободить эти элементы? Спасибо!