C++运行时出现内存不能为read,

程序大体要求如下:A,B,和C映射到2D,E,和F映射到3G,H,和I映射到4J,K,和L映射到5M,N,和O映射到6P,R,和S映射到7T,U,和V映射到8W,X,和Y... 程序大体要求如下:
A, B, 和C 映射到 2 D, E, 和F 映射到 3 G, H, 和I 映射到 4 J, K, 和L 映射到 5 M, N, 和O 映射到 6 P, R, 和S 映射到 7 T, U, 和V 映射到 8 W, X, 和Y 映射到 9
输入一个字符串,并输出对应后的结果
代码如下:
#include<iostream>
using namespace std;
#include<string>
const int a=7;
void main(){
int n,i,j=0;
string str;
cin>>n;
int **p;
p=new int*[a];
for(i=0;i<a;i++){
p[i]=new int[n];
}
for(i=0;i<n;i++){
cin>>str;
int k=0;
for(k=0;k<str.size();k++ )
{if(str[k]=='-')
continue;
if((str[k]>='A')& (str[k]<='C'))
p[i][j]=2;
else if((str[k]>='D')& (str[k]<='F'))
p[i][j]=3;
else if((str[k]>='G')& (str[k]<='I'))
p[i][j]=4;
else if((str[k]>='J')& (str[k]<='L'))
p[i][j]=5;
else if((str[k]>='M')& (str[k]<='O'))
p[i][j]=6;
else if((str[k]>='P')& (str[k]<='S'))
p[i][j]=7;
else if((str[k]>='T')& (str[k]<='V'))
p[i][j]=8;
else if((str[k]>='W')& (str[k]<='Y'))
p[i][j]=9;
else if(str[k]=='1'||'2'||'3'||'4'||'5'||'6'||'7'||'8'||'9'||'0')
p[i][j]=(int)(str[j]-'0');
j++;}
j=0;
}
for(i=0;i<n;i++){
for(j=0;j<a;j++){
cout<<p[i][j]<<" ";
} cout<<"\n";

}
delete []p;
}
好像是数组越界了,,但是我找不出来到底是哪里越界了
展开
 我来答
zfpwr1
2011-03-31
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
上面的答案一看就知道是粘贴来的,
看了你的程序,的确是数组越界了,你定义的是7列,n行,但你用的是7行,n列,改改就行了
力王历史
高赞答主

2011-03-31 · 点赞后记得关注哦
知道顶级答主
回答量:12.5万
采纳率:45%
帮助的人:4.3亿
展开全部
你好!电脑出现:【该内存不能为read与written】,原因是比较复杂的,请对症下药!

【答案原创,引用请说明,原作者:力王历史】!偶然出现!点:【确定或取消】,即可!

1。配置错误!【重启,出完电脑品牌后,按F8,安全模式,最后一次正确配置,回车,回车】!
2。系统漏洞!【360安全卫士或金山卫士,或可牛免费杀毒,修复:高危和重要的,其它忽略】!
3。软件冲突!【卸载不常用的软件,保持系统稳定,尤其是同类型的软件,不兼容】!
4。软件版本过旧!【使用:(驱动人生),更新:显卡驱动,声卡驱动!其它软件,覆盖安装】!
5。病毒木马!【杀毒软件,全盘扫描与自定义扫描,完毕后,隔离区,彻底删除】!
6。恶评插件!【可牛免费杀毒,金山卫士,或360安全卫士,清理恶评插件】!
7。可疑启动项!【360系统急救箱,开始急救,文件恢复区,彻底删除文件】!
8。系统文件损坏!【金山急救箱】,扩展扫描,立即扫描,立即处理,重启电脑】!
9。专业工具!【去网上下载一个:read修复工具,修复,试试】!
10。指令修复法!开始菜单,运行 ,输入cmd, 回车,在命令提示符下输入(复制即可) :
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
粘贴,回车,滚动完毕后,再输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
回车!直到屏幕滚动停止为止,重启电脑!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式