2
運行此程序時出現分段錯誤。使用gdb,我確認它在撥打pthread_create
。創建線程時出現分段錯誤
#include <stdio.h>
#include <pthread.h>
struct point {
int x;
int y;
char name;
};
void *start (void * P) {
while (1) {
}
}
main() {
struct point P;
P.name = 'P';
P.x = 1;
P.y = 2;
pthread_t *tid;
pthread_create (tid, NULL, (void *) start, (void *) &P);
while (1) {
}
}
有人可以幫忙嗎?
哦,是的!它現在有效。但是,爲什麼它的工作,而不是一個結構指針P,我傳遞一個整數指針? –
@SagarJha未定義的行爲並不意味着每次都無法工作。它偶爾會發生作用,但你不能依賴它。 –
因爲你在開始時忽略了P,所以它的值是不相關的,從來沒有使用過 –