我有这个结构
Cheltuieli * creeaza(int numar_apartament,int suma,char * tipul){
Cheltuieli * cheltuiala=malloc(sizeof(Cheltuieli));
cheltuiala->numar_apartament=numar_apartament;
cheltuiala->suma=suma;
cheltuiala->tipul=tipul;
return cheltuiala;
}
哪个应该“像一个班级”,我有这个方法
char* get_tipul(Cheltuieli c){
char * tip_de_returnat=strdup(c.tipul);
return tip_de_returnat;
}
这应该是tipul的“吸气剂”
我有一个通用容器
typedef void* Elements;
typedef struct{
Elements * Element;
int lungimea;
int capacitatea;
} vector_dinamic;
存储元素并且像动态矢量一样,我的元素是Cheltuieli
问题出在这里,我有这个函数应该打印动态矢量的所有元素,它正确打印“numar_apartament”和“suma”,但在“tipul”我得到一个颠倒的“?”
void afiseaza(controller * ctr){
int i;
Cheltuieli *c;
for (i=0;i<ctr->repo->v->lungimea;i++)
{
c=ctr->repo->v->Element[i];
printf("Numar apartament: %d\n",get_numar_apartament(*c));
printf("Suma: %d\n",get_suma(*c));
printf("Tipul: %s\n",get_tipul(*c));
}
有人可以帮帮我吗?谢谢!
答案 0 :(得分:1)
顺便说一下,对于这个函数“char * get_tipul(Cheltuieli c)”,你最好把它改成:
char* get_tipul(const Cheltuieli *c)
这样可以避免创建c的临时副本。