gpt4 book ai didi

c++ - Dev C++ 访问冲突(段错误)错误

转载 作者:行者123 更新时间:2023-11-28 03:38:39 24 4
gpt4 key购买 nike

当我遇到错误时,我正在执行这段代码。通过执行调试器,错误是“您的程序中引发了访问冲突(段错误)错误”。

/* Statcstr.cpp
* Le stringhe sono in realta' array static
*/
#pragma hdrstop
#include <condefs.h>
#include <string.h>
#include <iostream.h>
//---------------------------------------------------------------------------
#pragma argsused
int Modifica();
void Attesa(char *);
int main(int argc, char* argv[]) {
while( Modifica() );
Attesa("terminare");
return 0;
}
int Modifica() {
static unsigned int i = 0; // Per contare all'interno della stringa
char *st = "Stringa di tipo static\n";
if(i < strlen(st)) { // Conta i caratteri nella stringa
cout << st; // Stampa la stringa
st[i] = 'X'; //<--- THIS IS THE FAILING INSTRUCTION
i++; // Punta al prossimo carattere
return 1;
} else
return 0; // Indica che la stringa e' finita
}
void Attesa(char * str) {
cout << "\n\n\tPremere return per " << str;
cin.get();
}

你能告诉我我该如何解决吗?非常感谢

最佳答案

修改字符串文字是未定义的行为。

char *st = "Stringa di tipo static\n";
//this resides in read-only memory

尝试将其声明为

char st[] = "Stringa di tipo static\n";
//this is a string you own

或者,因为这是 C++,你应该使用 std::string

关于c++ - Dev C++ 访问冲突(段错误)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10049729/

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