私は C プログラミングが初めてで、助けてもらいたいと思っています。
私はこの構造体を持っています:
typedef struct house
{
int numOfRooms;
char* houseName;
}HOUSE,*pHOUSE;
HOUSEへのポインターを取得し、メモリ内の別の場所にある同じHOUSEへの新しいポインターを返す関数を作成したい-目的は、両方を変更せずに1つのポインターを変更できるようにすることです:私はより明確にしようとします:
pHOUSE duplicate_house(pHOUSE house)
{
pHOUSE newh = (pHOUSE)calloc(1,sizeof(HOUSE));
newh = house
//I get here a pointer that points on the same house.. so If I change for exmample:
// newh->numOfRooms = 9 - > both will change and I don't want it to happen!
}
memcpy_s を使用できることを読みましたが、構造体内に整数しかない場合は簡単です。ここには char * があるため、char * houseName
個別にコピーする必要があることを意味しますか? 私に何ができる?のような乗算型を持つオブジェクトをコピーするにはどうすればよいchar *
ですか? そしてもし私が配列を持っていたら?私は何ができますか?
typedef struct house
{
int numOfRooms;
char* houseName;
struct house *houses[10];
}HOUSE,*pHOUSE;
どうすればそれをコピーできますか?
ありがとうございます!