需要帮助whit c ++指针

时间:2016-06-09 17:28:42

标签: c++ pointers

我正在研究c ++语义和语法,我真的不知道这个代码有什么问题,它编译但是停止工作。我会帮助你,谢谢你。

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

using namespace std;

char* func(char* M)
{
    int initval = 2;
    char *x= new char[10];
    x="idea";
    strcpy(x, M+initval);
    return x;
}

int main()
{
    char* x;
    char s[10]= "alguna";
    x= func(s);
    cout <<  *x << endl;
    return 0;
}

1 个答案:

答案 0 :(得分:0)

关闭之前,x="idea";就是您的问题所在。你丢弃缓冲区并将其指向一个常量值,然后尝试分配给它,这几乎总是非法的(应该总是非法的,但显然它正在为你编译......)。