我有一个与线程和进程的内存地址有关的问题。问题是:-在正常通话中
int func(int a, int b){
int c;
c = a + b;
return c;
}
int main(){
int ret = func(a,b);
return 0;
}
在上面对函数 func 的函数调用中,函数变量 a 和 b 将被存储在堆栈中。请纠正我,如果我错了。
现在另一种情况是当我们从主进程创建线程时。
void * func(void *dummy_ptr){
int c;
c = a + b;
pthread_exit();
}
int main(){
pthread_t id;
int ret = pthread_create(&id, NULL, & func(), NULL);
return 0;
}
我的问题是 pthread_create 的变量将存储在哪里。它是存储在主堆栈还是线程堆栈上。