访问冲突读取位置c++字符向量
Access violation reading location C++ char vector
我是c++的新手,我对这种新语言有一些问题:)我找不到我的记忆不好的地方,因为我从来没有使用过一种不能自己管理记忆的语言。我希望有人能帮助我。
错误是"访问违规读取位置"。
抱歉我的英语不好,我是乌拉圭人。
<>之前dopartial:测试edx, 1简写***mov,[edx]***//这里我得到了错误之前int CalcularCantPalabras(char* str, int largo, char* delimitador){
int largo_VectorRetorno = 0;
char *palabra_cortada = new char[largo]+1;
strcpy_s(palabra_cortada ,largo+1,str);
palabra_cortada = strtok(palabra_cortada,delimitador);
while( palabra_cortada!= NULL ){
palabra_cortada = strtok(NULL,delimitador);
largo_VectorRetorno++;
}
return largo_VectorRetorno;
}
char** splitStr(char* str, char separador, int &largoRet){
char *delimitador = new char[1];
delimitador[0] = separador;
int largo_string = strlen(str);
char* str_copia = new char[largo_string];
strcpy_s(str_copia,largo_string+1,str);
int largo_VectorRetorno = CalcularCantPalabras(str_copia,largo_string,delimitador);
char ** VectorRetorno = new char*[largo_VectorRetorno];
largoRet = largo_VectorRetorno;
int posicion_vec_retorno = 0;
str_copia = strtok(str_copia-1,delimitador);
VectorRetorno[posicion_vec_retorno] = str_copia;
posicion_vec_retorno = posicion_vec_retorno+1;
while( str_copia!= NULL && posicion_vec_retorno<largo_VectorRetorno){
posicion_vec_retorno++;
str_copia = strtok(NULL,delimitador);
VectorRetorno[posicion_vec_retorno] = str_copia;
}
return VectorRetorno;
}
char *palabra_cortada = new char[largo]+1;
应该是:
char *palabra_cortada = new char[largo+1];
因为+1
在[]
之外,所以它对数组的大小没有影响。所以largo
是大小,而不是largo+1
。然后你就会受到双重打击。执行new char[largo]
并给出指向数组第一个元素的指针。然后不小心加了1,这将指针移动到数组的第二个元素。
数组不是从0
到largo+1
,而是从1
到largo
。实际上,你的数组只有两个元素。
相关文章:
- 将字符向量复制到另一个向量
- 尝试将字符串从文件读取到无符号字符向量中
- 如何将整数向量值插入字符向量
- 如何使用istream_iterator将无符号字符向量转换为字符串?
- 将字符向量转换为单个字符串
- 在C++中将字符向量转换为字符串向量
- 创建单词对齐的字符向量
- R data.table 和 STRING_ELT() 错误:如何修复"字符向量"与"字符"错误?
- 如何对字符向量执行大整数乘法
- std::逐字节复制字符向量
- 无法打印字符向量C++向量
- 我可以搜索字符向量的向量以找到特定的字符并获得其坐标
- 常量字符* 向量的新值没有得到 push_back()
- 如何将布尔向量转换为字符向量
- 如何组合字符向量的二进制第 n 位
- 如何使用SIMD比较两个字符向量并将结果存储为浮点值
- 计算字符向量中单词的出现次数
- 将字符向量转换为整数
- 将元素从字符向量复制到字符串向量
- 读取文件并将其写入字符向量时出现分段错误