相关疑难解决方法(0)

使用free()时的分段错误

此代码导致分段错误:

int main(){

    char *p;
    char a[50] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    p = (char *)malloc(50*sizeof(char));

    if(!p){
            cout << "Allocation Failure";
            cout << "\n";
    }
    else{
            cout << "Allocation Success";
            cout << "\n";
            p = a;
            cout << p;
            cout << "\n";
            free(p);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

执行该程序后的输出是:

Allocation Success

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Segmentation fault
Run Code Online (Sandbox Code Playgroud)

我无法找到错误.可能是什么原因?

c c++ string

4
推荐指数
2
解决办法
1763
查看次数

标签 统计

c ×1

c++ ×1

string ×1