我是 C 编程的新手,很想得到一些帮助。
我有这个结构:
typedef struct house
{
int numOfRooms;
char* houseName;
}HOUSE,*pHOUSE;
我想创建一个函数,它获取指向 HOUSE 的指针并返回指向位于内存中不同位置的同一个 HOUSE 的新指针 - 目的是能够更改一个指针而不更改两者:我会尽量清楚:
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;
我怎样才能复制它?
十分感谢!