首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于pthread_create函数参数的调用解决方法

2013-01-02 
关于pthread_create函数参数的调用pthread_create(&test_thread, NULL, test_show, (void*)text)中text使

关于pthread_create函数参数的调用
pthread_create(&test_thread, NULL, test_show, (void*)text)
中text使用
char *text = “aaaaaaaaaaaaaaaaa”;
代码可以正常运行,但改为char text[] = “aaaaaaaaaaaaaaaaa”;
后,只能获得一部分内容,即代码“aaaaaaaaaaaaaaaaa”的前一部分,不知是什么原因?
[解决办法]
猜测由于char[]所在内存区域引起的。如果你用全局或者malloc以及常量字符串都不会有问题。
[解决办法]
应该是地址没对齐。
[解决办法]
你这还是没有列出你所有的代码,看我写的就没问题:


#include<pthread.h>
#include<stdio.h>
#include<stdlib.h>

void* test_show(void *txt){
      printf("%s", (char*)txt);//代码正确输出
      return NULL;
}

int main(){
pthread_t test_thread;
char text[] = "前方路况复杂,请谨慎驾驶\n";
int ret = pthread_create(&test_thread, NULL, test_show, (void*)text);
pthread_join(test_thread,NULL);
return 0;
}

热点排行