以下のコード サンプルの次の 3 行で lint がエラーを出さないのはなぜですか?
timeout(&a);
timeout(&b);
if (pthread_create(&t1, NULL, timeout, (void*) &a) != 0)
ローカル変数へのポインターを渡すことは常に安全ではないと考えられていませんか? そして、両方の変数はローカルです...
#include <stdio.h>
#include <pthread.h>
static void* timeout(void* c)
{
int d = *(*((int**)c));
}
static void sendMessage(int* a)
{
timeout(&a);
int* b = new int(2);
timeout(&b);
pthread_t t1;
if (pthread_create(&t1, NULL, timeout, (void*) &a) != 0)
{
printf("pthread_create() error\n");
}
}
int main()
{
printf("Running..\n");
int* e = new int(1);
sendMessage(e);
delete e;
return 0;
}
ヨアヒム