gpt4 book ai didi

c++ - 将 C 字符串分配给指向字符的指针 - C++ 程序崩溃

转载 作者:行者123 更新时间:2023-11-30 01:50:08 25 4
gpt4 key购买 nike

我知道您可以使用 string.h 类来解决这个问题(我使用的是 C++),但我想了解为什么会发生崩溃。

错误很小,只是崩溃了:

Segmentation fault      (core dumped) 

我试图将字符串向左移动一位,以便我可以有效地删除字符串中的第一个字符。

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

using namespace std;

int main()
{
char * p1 = "192739@something.com";

for (int i = 0; p1[i] != '\0'; i++)
{
p1[i] = p1[i + 1];
}

return 0;
}

导致崩溃的原因是什么?

最佳答案

p1 指向一个字符串文字,这是不允许您修改的内存。将其声明为 char p1[] = 应该可以解决您的问题。请注意,您也可以将 (p1 + 1) 视为字符串,只要您知道 p1 中至少有一个字符即可。

关于c++ - 将 C 字符串分配给指向字符的指针 - C++ 程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27972289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com