この検査の問題に取り組んでおり、このようなものをコピーするためのメモリ管理を把握することはできません。私は初心者ですので、この問題はあなたにとって些細なことかもしれません。 名前と姓をある構造から別の構造にコピーするとエラーが発生します。たぶん私はメモリを再割り当てする必要がありますか?私は運が無ければそれを試みた。 ありがとうございます。動的文字列を構造体内の動的文字列にコピー
PS:Xは、私は問題はあなたが* ZAPためのメモリを割り当てるか、少なくともメモリアドレスを割り当てる必要があります主な機能 であると思い
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
typedef struct zaposleni { int id; char *ime; char *prez; } ZAP;
typedef struct firma { char naziv[20]; int br; ZAP *zap; } FIRMA;
void kopiraj (char *s1, char *s2)
{
while (*s1++ = *s2++);
}
void zaposli(FIRMA *f, ZAP *z)
{
bool x = false; int i;
for (i = 0; f->br > i; i++)
if (f->zap[i].id == z->id) x = true;
if (x==false) {
kopiraj(f->zap[i].ime,z->ime); // X
strcpy(f->zap[i].prez, z->prez);
f->zap[i].id = z->id;
}
}
int main()
{
FIRMA f = { "Lanaco",0, NULL };
ZAP z = { 1,(char*)malloc(4), (char*)malloc(5) };
strcpy(z.ime, "Ana");
strcpy(z.prez, "Anic");
zaposli(&f, &z);
free(z.ime);
free(z.prez);
free(f.zap[0].ime);
free(f.zap[0].prez);
free(f.zap);
return 0;
}
具体的な問題を明確にしてくださいあなたが必要とするものを正確に強調する追加の詳細。現在書かれているとおり、あなたが求めていることを正確に伝えるのは難しいです。この質問を明確にする方法については、How to Askページを参照してください。 – Olaf
@Olaf編集しました、あなたの摂取に感謝します。 – techno
ここで、uをbr =!0に設定しますか?さもなければあなたのループ 'for(i = 0; f-> br; i; i ++)'は決して実行されません。 –