2013-09-26 76 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