为什么编辑有效。编辑 2 无法像编辑 1 一样工作?另外如何让Edit2像Edit一样工作?
编辑:评论中的工作代码:
#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;
}
最佳答案
因为你的函数参数是char
而不是char*
。您应该创建数据参数 char*
并将其直接传递给 memcpy
,而不是传递其地址。
关于c - ANSI C memcpy/w 函数调用。 2个例子。 1 个有效,1 个无效。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23313187/