尝试取消引用BYTE aka(unsigned char)的非空指针时程序崩溃

时间:2016-06-25 03:49:20

标签: c++ c++11 dereference unsigned-char

我正在尝试取消引用BYTE*unsigned char*结构的tlhelp32.h if又名nullptr)成员。但是当我尝试取消引用它时,我的程序崩溃了。我做了一个#include <windows.h> #include <tlhelp32.h> #include <iostream> using namespace std; int main() { DWORD pid = 0xFFFFFFFF; MODULEENTRY32 mod_entry; mod_entry.dwSize = sizeof(MODULEENTRY32); HANDLE procH; cout << "PID: " << flush; cin >> pid; procH = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE|TH32CS_SNAPMODULE32, pid); if(procH == INVALID_HANDLE_VALUE) { cout << "Failed to retrieve process handle" << endl; CloseHandle(procH); return 1; } if(!(Module32First(procH, &mod_entry))){cout << "Mod32 1st failed\n";CloseHandle(procH);return 1;} if(mod_entry.modBaseAddr == nullptr){cout << "modBaseAddr is empty\n";CloseHandle(procH);return 1;} BYTE mod_baseaddr = *mod_entry.modBaseAddr; //<-------------------Causes program to crash. return 0; } 声明,以确保它不是import operator col_zero = operator.itemgetter(0) err = operator.itemgetter(3) 。它不是,但我的程序仍然崩溃。这是我的代码:

pvst = set(['p','v','s','T'])

err_p = []
err_v = []
err_s = []
err_T = []
array_map = {'p':err_p, 'v':err_v, 's':err_s, 'T':err_T}

with open('file.txt') as f:
    # iterate
    for line in f:
        line = line.strip().split()
        # test
        if col_zero(line) in pvst:
            # store
            array_map[col_zero(line)].append(err(line))

0 个答案:

没有答案