我有这样的结构打印字符串通过指针C发送
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' – Serdalis 2013-03-20 13:07:53
没有看到全部的程序我不能肯定,但是这是* *可能成为他们被释放后习惯串的情况。尝试从'get_tipul'的'的strdup(tipul)'移动'creeaza'。 – zwol 2013-03-20 13:07:55
我认为,如果你用英语写的代码会让事情变得更好。 – Yousf 2013-03-20 13:09:19