char recBuffer[8024];
char* temp = (char*)malloc(65536);
ZeroMemory(recBuffer, 8024);
ZeroMemory(temp, 65536);
bytesRead = recv(_socket, recBuffer, sizeof(recBuffer), 0);
memcpy(temp , &recBuffer, bytesRead );
memcpy在这里不起作用。它将一个随机字符复制到temp中。如果我使用指针,我可以让它复制接收到的数据的第一个字符。我如何正确地做到这一点?
我希望recBuffer接收到的数据被复制到临时缓冲区。
编辑:注解中的工作代码:
#include <string.h>
#include <stdio.h>
int main()
{
char recBuffer[8024];
char* temp = (char*)malloc(65536);
strcpy(recBuffer, "Hello\n");
int bytesRead = 7;
memcpy(temp , &recBuffer, bytesRead );
printf("%s\n", temp);
return 0;
}
第2章为什么会失败:
#include <stdio.h>
void Append(char* b, char data, int len)
{
memcpy(b , &data, len );
}
int main() {
int bytesRead = 7;
char recBuffer[8024];
char* temp = (char*)malloc(65536);
strcpy(recBuffer, "Hello\n");
Append(temp, recBuffer, bytesRead);
printf("%s\n", temp);
return 0;
}
4条答案
按热度按时间iaqfqrcu1#
变更:
收件人:
e7arh2l62#
试试看
vs91vp4v3#
我有种感觉你看到了问题所在因为你没有
我得到相同的结果,无论我用途:
或
laik7k3q4#
在示例2中,需要将char data更改为char const * data,并将其作为data not &data传递给memcopy。