Fortunately, the fix here is straightforward.
- Just pass the const char * instead.
- Online version is what's presented below is right here.
static const char *kExtroverts[] = {
"Albert Chon",
"John Carlo Buenaflor",
"Jessica Guo",
"Lucas Ege",
"Sona Allahverdiyeva",
"Yun Zhang",
"Tagalong Introvert Jerry Cain"
};
static const size_t kNumExtroverts = sizeof(kExtroverts)/sizeof(kExtroverts[0]) - 1;
static void *recharge(void *args) {
const char *name = args;
printf("Hey, I'm %s. Empowered to meet you.\n", name);
return NULL;
}
int main() {
printf("Let's hear from %zu extroverts.\n", kNumExtroverts);
pthread_t extroverts[kNumExtroverts];
for (size_t i = 0; i < kNumExtroverts; i++)
pthread_create(&extroverts[i], NULL, recharge, (void *) kExtroverts[i]);
for (size_t i = 0; i < kNumExtroverts; i++)
pthread_join(extroverts[i], NULL);
printf("Everyone's recharged!\n");
return 0;
}