我很难理解这两者之间的区别:
typedef struct someStruct{
int x;
char *name;
struct someStruct *next
}TEST1,*pTEST1;
void *copyElement(void* s){
pTEST1 cop = (pTEST1)calloc(1,sizeof(TEST1));
cop = (pTEST1)s;
}
如果我没记错的话,这个是指向同一个元素,所以如果我改变一个,所有指向的元素都会改变
我想在内存中的新“位置”中创建元素的新副本并指向它。
很想得到解释。
我不明白的另一件事是指针分配空间和对象本身之间的区别。
例如,如果我使用我的功能并这样做:
void *copyElement(void* s){
pTEST1 cop = (pTEST1)calloc(1,sizeof(TEST1));
cop = (pTEST1)s;
/*or */
TEST1 a;
pTEST1 b;
a.x =(pTEST1)s->x;
a.name = (pTEST1)s->name;
a->next = (pTEST1)s->next;
b= &a ;
// it means the when the function ends,
// I loose the pointer ? because I didn't
// allocate space for it?
}