我有這樣的結構打印字符串通過指針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