字符串逆序问题(解决方案)——及写入位置时发生访问冲突
来源:互联网 发布:实矩阵有实SVD分解 编辑:程序博客网 时间:2024/06/05 20:32
前景提要:前几天遇到了一个字符串逆序的面试,开始以为很简单,结果写的时候一直告诉我写入位置时发生冲突,
然后就一直想不通,我哪里错了,没错啊,最后看了下大神们的解释,原来是这样的。
开始时我只这样写的:
#include "stdafx.h"
#include "iostream"
using namespace std;
#include "iostream"
using namespace std;
void Reverse(char* s)
{
char *begin = s;
char *end = s;
for (int i = 1; i < strlen(s); i++)
end++;
while (begin < end)
{
char t = *begin;
*begin = *end;
*end = t;
begin++;
end--;
}
{
char *begin = s;
char *end = s;
for (int i = 1; i < strlen(s); i++)
end++;
while (begin < end)
{
char t = *begin;
*begin = *end;
*end = t;
begin++;
end--;
}
}
int main()
{
int c;
char *str = "asdfghjkl"; //错误在这里,改成 char str[]="asdfghjkl"
{
int c;
char *str = "asdfghjkl"; //错误在这里,改成 char str[]="asdfghjkl"
Reverse(str);
cout << str;
cin >> c;
return 0;
}
cout << str;
cin >> c;
return 0;
}
"asdfghjkl"只是一个常量,储存在常量区且不能被修改。而原来的str是一个指针,它指向一个常量,它只能改变它的指向,而不能改变它所指的常量。
改过之后,将常量复制到数组中,我们知道数组中的元素是可以改变的。运行下,正确的。
发生这种错误的原因是对程序的内存分配不够了解吗,程序的内存分配:
1,栈区(stack),由编译器自动生成释放,比如函数参数,局部变量等
2,堆区(heap),由程序员分配(new),为了完整和安全记得一定delete
3,全局区(静态区)(static),全局变量和静态变量(包括所有的静态全局变量,静态局部变量,静态数据成员)存放在全局区。初始化的全局变量和静态变量放在一起,未初始化的全局变量和未初始化的放在相邻的一块区域,程序结束后,由系统释放。
阅读全文
0 0
- 字符串逆序问题(解决方案)——及写入位置时发生访问冲突
- 写入位置时发生访问冲突
- VS 2013设置大地址解决地址写入冲突问题 0xC0000005: 写入位置 0x00000014 时发生访问冲突
- 写入位置0xcccccccc时发生访问冲突
- 写入位置 0xCDCDCDCD 时发生访问冲突等
- 0xC0000005: 写入位置 0x009BDA68 时发生访问冲突。
- 0xC0000005: 写入位置 0x00000000 时发生访问冲突
- 读取/写入位置发生访问冲突
- 问题解决——使用CriticalSection后 0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突
- MFC中关于m_pMainWnd = &dlg;处报错的解决方案,针对XX处未处理的异常:0xC0000005:写入位置0x00000020时发生访问冲突
- 0xC0000005: 写入位置 0x00000000 时发生访问冲突的解决办法
- ”0xC0000005: 写入位置 0xCDECCAE1 时发生访问冲突.“原因分析
- 有未经处理的异常: 0xC0000005: 写入位置 0x01260000 时发生访问冲突
- Win10下C++代码文件夹遍历错误:0xC0000005: 写入位置时发生访问冲突。
- 读取位置时发生访问冲突
- QT读取位置时发生访问冲突
- 链接库加载,“”(*.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x40B9CA00 时发生访问冲突”的问题所在
- VS2012 msvcr110d.dll xxxxxx处有未经处理的异常:0xC0000005:写入位置xxxxxx时发生访问冲突(scanf_s引起)-已解决
- 计算机专业学什么语言最能找工作
- JavaScript面向对象程序设计——继承
- 徐志摩《沙扬娜拉》
- 模拟实现string类
- 数据分析(入门篇)-第二章-玩转数据分析-Part1(Excel数据分析工具-PowerPivot)
- 字符串逆序问题(解决方案)——及写入位置时发生访问冲突
- leetcode[Add Digits]//待整理多种解法
- 交叉熵
- leetcode#70. Climbing Stairs
- Python 循环终止语句
- PHP中查看PHP基本信息
- C Primer Plus(第6版)第四章答案
- 部分手机无法显示Dialog问题
- java实现俄罗斯方块