我的指针有什么问题(open_stackdumpfile错误)?

时间:2015-11-08 22:26:35

标签: c++ pointers

我一直在尝试编写基本字符串反转的代码。下面的代码似乎有一些基本的指针问题,因为它给出了以下错误,但我无法弄明白:

1 [main] reversestring 9748 cygwin_exception :: open_stackdumpfile:将堆栈跟踪转储到reversestring.exe.stackdump RUN FAILED(退出值35,584,总时间:216ms)

我已经包含了注释代码,只是为了使程序有意义。使用注释执行代码时会发生错误。

#include <cstdlib>
#include <cstdlib>
#include <iostream>
#include <string.h>

using namespace std;

int main(int argc, char** argv) {

    char *myString = "Hello World!";
    char temp;

    int len = strlen(myString);

    char * strPtr = myString;
    char * endPtr = myString + len-1;

   //while (strPtr < endPtr){
        temp=*endPtr;    
        //*endPtr=*strPtr;
       *strPtr=temp;
       // strPtr++;
      //  endPtr--;
   //}

  //  cout << myString; 


    return 0;
}

1 个答案:

答案 0 :(得分:1)

执行:char *myString = "Hello World!";时,您要将常量字符串分配给myString,并且无法修改常量字符串。

你可以这样做:

char myString[] = "Hello World!";

这将分配一个足够大的字符串来包含“hello world!”然后编译器将该字符串复制到您的字符串中。现在可以修改该字符串。