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

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? 什么意思撒

有两种方法可以实现。

为方便说明,定义两个整型数组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标准中又把它规定为可选实现的功能了。

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-03
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呢
第2个回答  推荐于2018-04-19
有两种方法可以实现。

为方便说明,定义两个整型数组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));本回答被网友采纳
第3个回答  推荐于2017-09-26
这个问题并不难,一般用简单的赋值语句就可以办到!
#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";貌似定义的是字符常量

本回答被提问者采纳
第4个回答  2019-12-23
有两种方法可以实现。为方便说明,定义两个整型数组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));