ANSI C memcpy/w func调用。2个例子。一个有效,一个无效。
为什么编辑会起作用。编辑2无法像编辑1那样工作?还有,如何使Edit2像Edit一样工作 编辑:注释中的工作代码:ANSI C memcpy/w func调用。2个例子。一个有效,一个无效。,c,memcpy,C,Memcpy,为什么编辑会起作用。编辑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 , &recBuf
#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;
}
#包括
int main()
{
char-recBuffer[8024];
char*temp=(char*)malloc(65536);
strcpy(recBuffer,“Hello\n”);
int字节读取=7;
memcpy(temp、recBuffer和bytesRead);
printf(“%s\n”,temp);
返回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;
}
#包括
无效附加(字符*b,字符数据,整数长度)
{
memcpy(b&data,len);
}
int main()
{
int字节读取=7;
char-recBuffer[8024];
char*temp=(char*)malloc(65536);
strcpy(recBuffer,“Hello\n”);
追加(temp、recBuffer、bytesRead);
printf(“%s\n”,temp);
返回0;
}
因为您的函数参数是char
而不是char*
。您应该创建数据参数char*
,并将其直接传递给memcpy
,而不是传递其地址。Append的第二个参数是char,而不是char* 如果没有警告/错误,第二个版本将无法编译。噢,哇,没有检查警告。。警告C4024:“追加”:形式参数2和实际参数2的类型不同。如何修复?char const*
会更好。