Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ANSI C memcpy/w func调用。2个例子。一个有效,一个无效。_C_Memcpy - Fatal编程技术网

ANSI C memcpy/w func调用。2个例子。一个有效,一个无效。

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

为什么编辑会起作用。编辑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;
}
#包括
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*
会更好。