为什么 leetcode 上有运行错误,而 vs2019 上没有错误?

Why is there a running error on leetcode and no error on vs2019?

本文关键字:vs2019 有错误 错误 leetcode 运行 为什么      更新时间:2023-10-16

我确定字符串ToCharArray函数有一些问题,但我不知道如何解决它。 在此处输入图像描述

char* stringToCharArray(string s)
{
char* str = new char[s.size() + 1];
s.copy(str, s.size() + 1);
str[s.size()] = '';
return str;
}
int lengthOfLongestSubstring(string s) {
char* p = stringToCharArray(s);
int len = 0;
int prelen = 0;
unordered_set<char>st;
while ( (*p) != '')
{
while(st.insert(*p).second) {
p++;
}
len = max(prelen, (int)st.size());
prelen = len;
st.clear();
st.insert(*p);
p++;
}
return len;
}

为什么他们会收到错误而您没有?他们正在使用地址清理器进行编译,而您不是。

你的错误是什么?s.copy(str, s.size() + 1);从 s.size 长的字符串中复制 s.size+1 字符和

while(st.insert(*p).second) {
p++;
}

似乎也错了,"只要插入一些东西就继续前进"可能会在p上越界.

更不用说在没有配对删除的情况下执行新操作的内存泄漏了......