错误“ 3 [main] 8724 cygwin_exception :: open_stackdumpfile:将堆栈跟踪信息转储到a.exe.stackdump”

时间:2019-01-05 16:30:28

标签: c++ cygwin stack-dump

我正在尝试创建一个哈希映射来存储字符串中的字符。我似乎找不到导致错误“ 3 [main] 8724 cygwin_exception :: open_stackdumpfile:将堆栈跟踪信息转储到a.exe.stackdump”的问题。我相信它位于hasher.cpp中的某个位置,并且与赋值有关,但除此之外,我完全感到困惑。任何帮助将不胜感激!

我尝试注释掉main.cpp的某些部分。当我简单地实例化名为“ map”的哈希器时,代码就起作用了。当我尝试初始化或打印时,会引发错误。

main.cpp:

$file = file_get_contents('./myuser.txt', FILE_USE_INCLUDE_PATH);
$arry = explode(",",$file);
$count = 0;
while($count<sizeof($arry)){
  if($arry[$count]== $userInput){
      echo 'found';
  }else{
       echo "non found";
  }

  $count++;

}

hasher.cpp:

#include <iostream>
#include <stdio.h>
#include <string.h>
#include "hasher.h"
using namespace std;

int main(void){

  hasher *map = new hasher;
  map -> initialize(map);
  map -> printHash(map);

  return 0;
}

hasher.h:

  #include "hasher.h"
  #include <iostream>
  using namespace std;

  hasher::hasher(){

  }

  void hasher::initialize(hasher *h){ //initialize all charachters to spaces
    for(int i = 0; i < hasherSize; i++){
      h -> arr[i] -> C = ' ';
    }
  }

  void hasher::insert(hasher *h, char ins){
    int addr;
    int value = (int)ins; //value will be the ascii value of the char

    addr = value / 7; //map the current character to the ascii value mod 7

    node *curr = h -> arr[addr];
    while(curr -> next != nullptr){
      curr++;
    }
    curr -> next -> C = ins;
  }

  void hasher::del(hasher *h, char delChar){

  }

  bool hasher::inString(hasher *h, char se){

  }

  void hasher::printHash(hasher *h){
    for(int i = 0; i < hasherSize; i++){
      cout << h -> arr[i] -> C;
      node *curr = h -> arr[i];
      while(curr -> next != nullptr){
        curr++;
        cout << ", " << curr -> C;
      }
      cout << endl;
    }
  }

我相信所有标头/数据结构都是正确的(定义了一个节点和一个由节点数组组成的哈希映射,每个节点都有一个下一个指针)。

在此先感谢您的帮助!

0 个答案:

没有答案