我正在使用两种结构来处理C:Car和List
#define MAX_LEN 10
#define NUM 7
typedef struct{
char nr[NUM];
char model[MAX_LEN];
char categ[];
}Car;
#define LEN 100
typedef struct{
Car elem[LEN];
int n;
}List;
我想在car
中添加List
类型的元素。我试过了
void add(List l, Car c){
l.elem[l.n] = c;
l.n ++;
}
但是当我打印列表时,我会得到奇怪的字符,我怀疑这是问题所在。
答案 0 :(得分:1)
void add(List* l, Car c){
strcpy(l->elem[l->n].nr,c.nr);
strcpy(l->elem[l->n].model,c.model);
strcpy(l->elem[l->n].categ,c.categ);
l->n= l->n + 1;
}
答案 1 :(得分:0)
您可以通过List
传递pointer
并相应地收到
// Call
add(&l,c);
//Function
void add(List* l, Car c){
l->elem[l->n] = c;
l->n++;
}