c++ 如何把一个数组的值赋到另一个数组

char*begin="aaaaa";char*end="bbbbb";intm=4;for(inti=0;i<m;i++){end[i]=begin[i];printf... char *begin = "aaaaa";
char *end = "bbbbb";
int m = 4;
for(int i=0; i<m; i++){
end[i]=begin[i];
printf("%c ",end[i]);
}
为什么总提示我 ACCESS VIOLATION? 什么意思撒
展开
 我来答
帐号已注销
2020-12-29 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:163万
展开全部

有两种方法可以实现。

为方便说明,定义两个整型数组a,b,并实现将a中的值赋值到b中。

int a[4] = {1,2,3,4}, b[4];

1、 通过数组遍历,逐个赋值。

定义循环变量int i;

for(i = 0; i < 4; i ++)

b[i] = a[i];

该程序功能为遍历数组a,逐个赋值到数组b对应元素中。

2、 借助内存复制函数memcpy,整体赋值。

void *memcpy(void *dst, void *src, size_t size);

这个函数的功能为将src上,大小为size字节的数据赋值到dst上。

调用该函数时需要引用头文件cstring,即

#include <cstring>

赋值数组的代码为

memcpy(b,a,sizeof(a));

扩展资料:

在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

关于可变长数组(VLA)的问题:原来的C89标准中是不允许可变长数组出现的,但是在C99标准中,加入了对VLA的支持,但是支持的编译器不多,而且由于栈溢出的安全问题,没有太多的人敢用这个可变长数组,所以在C11标准中又把它规定为可选实现的功能了。

参考资料来源:百度百科-数组

帐号已注销
高粉答主

2021-04-03 · 说的都是干货,快来关注
知道大有可为答主
回答量:1.8万
采纳率:74%
帮助的人:515万
展开全部
C++字符串处理函数 C语言和C++提供了一些字符串函数,使得用户能很方便地对字符串进行处理。这些是放在函数库中的,在string和string.h 头文件中定义。 如果读者要使用这些字符串函数,应该用#include命令把string.h或string头文件包含到本文件中。 C++字符串连接函数strcat 函数原型

strcat函数是有两个字符数组的参数,函数的作用是:将第二个字符数组中的字符串连接到前面字符数组的字符串的后面,第二个字符数组被指定为const,以保证该数组中的内容不会在函数调用期间修改。 连接后的字符串放在第一个字符数组中,函数调用后得 到的函数值,就是第一个字符数组的地址。 C++字符串复制函数strcpy 函数原型为

在应用数组的时候,我们往往需要要把数组的值由一个数组传递给另外一个数组,就如同变量的传递一样:

A=B ’把B值赋给A

C=A ’把A值赋给C

如上例,就完成了把值的传递的过程,分别把B的值传递给了A;把A的值传递了B,那么数组是否也可以呢?我们看下面的数组传递:

下面看我给出的代码:

Sub MyNZsz_34() '第34讲 如何把一个固定数组的值传递给另外一个数组

'直接赋值是不对的

Sheets("34").Select

Dim arr1(1) As Integer '定义一个一维固定数组arr1(1)

Dim arr2(1) As Integer '定义一个一维固定数组arr2(1)

arr1(0) = 1 '给arr1(1) 的数组元素0赋值为1

arr1(1) = 2 '给arr1(1) 的数组元素0赋值为2

arr2 = arr1 '讲数组1传递给数组2

MsgBox (arr2(1)) '提示数组2的元素1的值

End Sub

上述代码的过程要完成的是首先定义两个一维数组arr1(1)和 arr2(1);然后先给其中的一个数组arr1(1)赋值,这个数组共用两个元素分别赋值为1,2;然后我们用普通变量赋值的方法把数组arr1(1)赋值给arr2(1);最后提示数组2的元素1的值,那么是否会弹出对话框提示为1呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
推荐于2018-04-19 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450117
专业C/C++软件开发

向TA提问 私信TA
展开全部
有两种方法可以实现。

为方便说明,定义两个整型数组a,b,并实现将a中的值赋值到b中。
int a[4] = {1,2,3,4}, b[4];

1、 通过数组遍历,逐个赋值。
定义循环变量int i;
for(i = 0; i < 4; i ++)
b[i] = a[i];
该程序功能为遍历数组a,逐个赋值到数组b对应元素中。

2、 借助内存复制函数memcpy,整体赋值。
void *memcpy(void *dst, void *src, size_t size);
这个函数的功能为将src上,大小为size字节的数据赋值到dst上。
调用该函数时需要引用头文件cstring,即
#include <cstring>
赋值数组的代码为
memcpy(b,a,sizeof(a));
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mr_Yang2012
推荐于2017-09-26 · TA获得超过1647个赞
知道小有建树答主
回答量:392
采纳率:0%
帮助的人:490万
展开全部
这个问题并不难,一般用简单的赋值语句就可以办到!
#include<iostream>
using namespace std;
int main(){
int a[10],b[10];
for(int i=0;i<10;i++){
cin>>a[i]; //输入a[i]
b[i]=a[i];} //把a[i]的值赋给b[i]
for(int j=0;j<10;j++){
cout<<a[i]<<" "<<b[j]<<endl;} //输出两个数组
return 0;}
对于多数的数组是需要将每个元素一一赋给另一个数组,对于字符数组只需将第一个元素的地址赋给另一个数组即可:
#include<iostream>
using namespace std;
int main(){
char a[10],b[10];
cin>>a;
b=a; //将a的地址赋给b
cout<<b<<endl;
return 0;}
追问
那么我的那个问什么不对呢?提示access violation
追答
这样改就可以了:
#include
using namespace std;
int main(){
char begin[6] = "aaaaa";
char end[6]= "bbbbb";
for(int i=0; i
using namespace std;
int main(){
char*begin = "aaaaa";
char *end= "bbbbb";
end=begin;
for(int i=0; i<4; i++){
printf("%c",end[i]);} //输出结果aaaa
printf("\n");
system("pause");}
还有 char*begin = "aaaaa";char *end= "bbbbb";貌似定义的是字符常量
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来了来了12587
2019-12-23 · TA获得超过4910个赞
知道小有建树答主
回答量:759
采纳率:59%
帮助的人:19.2万
展开全部
有两种方法可以实现。为方便说明,定义两个整型数组a,b,并实现将a中的值赋值到b中。int a[4] = {1,2,3,4}, b[4];1、 通过数组遍历,逐个赋值。定义循环变量int i;for(i = 0; i 赋值数组的代码为memcpy(b,a,sizeof(a));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式