2014-04-26 29 views
2

爲什麼編輯工作。和編輯2無法像編輯1一樣工作?另外如何讓Edit2像Edit一樣工作?ANSI C memcpy/w函數調用。 2個例子。 1件作品,1件不。

編輯:從評論的工作代碼:

#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; 
} 

EDIT 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; 
} 
+0

第二個版本不會編譯沒有警告/錯誤。 –

+0

哦,哇,沒有檢查警告..警告C4024:'追加':不同類型的正式和實際參數2.如何解決? –

回答

3

因爲你的函數參數是charchar*。您應該將數據參數char*並直接傳遞給memcpy而不是傳遞其地址。

+0

'char const *'會更好。 –

+0

Ty 15中最佳答案 –

0

Append的第二個參數是char,而不是char *!

相關問題