2013-09-26 120 views
1

到字符數組在多線程程序我如何投void指針用C怎麼辦我投void指針用C

void* write(void* ptr) {  
    char array[100]; 
    array= (char*)ptr; 
    printf("%s",array); 
} 
+2

什麼不妥的printf( 「%S」,(字符*)PTR); ? – SheetJS

+0

數組無法分配。 'char array [100];'(除了'sizeof'的用途)與'const char * array = malloc(100 * sizeof(char))'相同。請注意'const'修飾符。 – ApproachingDarknessFish

+0

@ValekHalfHeart - 你的意思是malloc(畢竟是C) – Asaf

回答

5

你不能以字符數組在多線程程序。

你可以將它轉換爲一個char指針,但是:

void* write(void* ptr){  
    char *array; 
    array= (char*)ptr; 
    printf("%s",array); 
} 
1

您可能需要使用一個指向一個字符數組,而不是一個固定大小的數組。

void *ptr; 
... 
char *message; 
message = (char *) ptr; 

Source