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

关于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;
}