我正在将一组指针从服务器传递到客户端。但是,在客户端,当我取消引用接收到的数组时,会出现分段错误。服务器和客户端都是操作系统本地的。我认为我在指针方面犯了某种错误并违反了某些指针规则。
这是代码:
服务器.c
struct WinGoku goku,windows,gates;
struct WinGoku *array[3];
array[0] = &goku;
array[1] = &windows;
array[2] = &gates;
send(conSocket, array, sizeof(&array), 0);
客户端.c
struct WinGoku **array;
int rec = recv(mySocket, array, 4, 0);
printf("bytes Recieved %d\n", rec);
int i;
for(i = 0; i<3;i++)
{
printf("%s\n",array[i]->test);
}
struct WinGoku
仅包含char[50]
我在其中复制数据的strcpy
.
发送和接收没有返回-1,因此数据被正确发送和接收。
我在做什么错误?