【发布时间】:2015-01-15 20:20:16
【问题描述】:
我知道你可以使用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;
}
导致崩溃的原因是什么?
【问题讨论】:
-
字符串文字。 stringer 文字是不可修改的。修改字符串文字是未定义的行为。
-
如果您使用 C++,请不要使用 C 和 C++ 双重标记问题。