struct node
{
public:
char *s;
int up;
node()
{
up = 0;
s = new char[1000];
memset (s, 0, sizeof(char) * 1000);
}
~node()
{
delete [] s;
}
void insert()
{
s[up++] = 'a';
}
};
void* test_thread(void *arg)
{
pthread_mutex_lock( &mutex1 );
node n;
n.insert();
printf ("%s\n", n.s);
printf ("%x\n", &n);
pthread_mutex_unlock( &mutex1 );
pthread_exit(0);
//return 0;
}
この関数がによって実行されると仮定します
pthread_create(&id1, NULL, test_thread, NULL);
pthread_create(&id2, NULL, test_thread, NULL);
そしてそれはによってコンパイルされます
g++ test_thread.cpp -o main -lpthread -g
その結果は
a
40a001a0
a
40a001a0
私のLinuxオペレーターでは、2つのスレッドのノードnのアドレスは同じです!
thoスレッドに含まれるノードnのアドレスが同じである理由を知りたいのですが。
どんな答えでも大歓迎です~~~
ありがとう~~~