【发布时间】:2023-04-06 10:57:01
【问题描述】:
这个让我很烦,但我想避免只使用 memcpy 的明显解决方案。
struct Person
{
//Some variables
};
void doSomething(char* pointerToSomeone)
{
struct Person bob;
//Assign pointerToSomeone to bob, somehow...
}
在上面,pointerToSomeone 是一个指向 Person 结构的指针。 我如何将它分配给鲍勃?确定有可能吗?
我尝试了许多我认为合理的强制转换、尊重等但没有成功(编译器错误)。
【问题讨论】:
-
如果这应该改变pointerToSomeone outsied doSth,你应该使用**而不是*。
-
首先,如果pointerToSomeone真的指向一个Person,为什么它被声明为“char *”?它应该是指向结构的指针,否则为 void *.其次,“将其分配给鲍勃”实际上是什么意思?你的意思是让它指向鲍勃结构吗?那只是“pointerToSomeone = &bob”,它将在函数的范围内有效(但不在它之外)。你真的是说你想将数据从一个结构复制到另一个结构吗?这需要 memmove()。那么你真正想要做什么呢?
标签: c pointers reference variable-assignment dereference