小编Chr*_*ris的帖子

C++线程中的分段错误

我正在尝试在C++中设置一个基本的线程类,但是当我尝试创建一个线程时,我遇到了一个seg错误.以下是GDB报告的内容:

Program received signal SIGSEGV, Segmentation fault.
0x0000000000401b68 in StartThread (pFunction=
    0x401ad2 <FindPrimesThread(void*)>, pLimit=5000000) at Thread.cpp:35
35          state->mLimit = pLimit;
Run Code Online (Sandbox Code Playgroud)

当我试着像这样打电话:

ThreadState *primesState = StartThread(FindPrimesThread, 5000000);
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

Thread.hpp

#ifndef THREAD_HPP
#define THREAD_HPP

#include <pthread.h>
#include "Types.hpp"

typedef struct {
    ulong       mLimit;     // Upper limit of numbers to test 
    int         mStarted;   // True if the thread started successfully
    int         mExitCode;  // Thread exit code
    pthread_t   mThreadId;  // Thread ID
} ThreadState;

// Defines a type named ThreadFunction which is a pointer …
Run Code Online (Sandbox Code Playgroud)

c++ pthreads segmentation-fault

3
推荐指数
1
解决办法
2330
查看次数

标签 统计

c++ ×1

pthreads ×1

segmentation-fault ×1