gpt4 book ai didi

c++ - 简单代码的意外运行时错误

转载 作者:行者123 更新时间:2023-11-27 23:24:20 26 4
gpt4 key购买 nike

任何人都可以告诉我为什么我会收到下面给出的代码的意外运行时错误。它适用于两次迭代,但不能超过两次。

#include<iostream>
#include<fstream>
#include<string>

using namespace std;
void print(string hmm)
{
ofstream ko(hmm.c_str(),ios::trunc);
ko<<"chacho";
ko.close();
}

int main(){
for(int i=0;i<5;i++)
{
char *chat=new char;
sprintf(chat,"%d%s",i,"_num.txt");
string rat=chat;

print(rat);
}

system("pause");
return 0;
}

最佳答案

char *chat=new char;

这只会分配一个字符。您的 sprintf 正在耗尽此缓冲区。

你也不删除这个分配,导致泄漏。

关于c++ - 简单代码的意外运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10475921/

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