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;
}
好像是数组越界了,,但是我找不出来到底是哪里越界了 展开
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;
}
好像是数组越界了,,但是我找不出来到底是哪里越界了 展开
2个回答
展开全部
你好!电脑出现:【该内存不能为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
回车!直到屏幕滚动停止为止,重启电脑!
【答案原创,引用请说明,原作者:力王历史】!偶然出现!点:【确定或取消】,即可!
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
回车!直到屏幕滚动停止为止,重启电脑!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询