C语言,怎样把数组的首地址赋给另一个数组

我用postthreadmessage发送一个数组的首地址,我想让接收方收到后将这个首地址赋给另一个数组RevTSN,也就说让RevTSN中存放和发放数组中相同的数据:
RevTSN=msg1.wParam;这样提示错误,那我应该怎么传这个数组?

    不能把数组的首地址赋给另一个数组。因为数组名是常量指针类型,初始化之后是不能够被修改的。

    有两种办法实现类似功能,一种是创建指针变量,把地址直接赋值指针变量:

    例如 int a[100]; int *b=a;

    第二种就是直接用循环一一复制每个元素。

    例如 for(i=0;i<strlen(a);i++) b[i]=a[i];

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-06
提示错误,提示的错误应该是类型不匹配,一个是地址,一个是非地址类型的地址。你需要一个数组保存的变量类型是地址,那就应该定义成指针数组类型;

如:char *apczArry[10] ; 此时就可以把一组字符串变量的地址赋给数组。说白了就是这个数组存的数据就是地址,只是以这个地址开始的空间内存的是字符串的变量
第2个回答  2012-11-06
数组名是常量指针,所以你对RevTSN赋值是错误的
这里只能通过值的逐一拷贝到RevTSN中

p = msg1.wParam;
RevTSN[i++] = *p++;追问

这个p是指针吗?

追答

是的,类型同你数组元素类型一致

本回答被提问者和网友采纳

C语言,怎样把数组的首地址赋给另一个数组
不能把数组的首地址赋给另一个数组。因为数组名是常量指针类型,初始化之后是不能够被修改的。 有两种办法实现类似功能,一种是创建指针变量,把地址直接赋值指针变量: 例如int a[100]; int *b=a; 第二种就是直接用循环一一复制每个元素。 例如for(i=0;i<strlen(a);i++) b[i]=a[i]; 本回答由文化艺术...

C语言中如何把一个数组的值赋给另一个数组 急!!!
第一个问题,用FOR循环吧第一个数组的值 给第二个,第二个问题,可以,完全可以,第一个矩阵刚好是第二个的转制矩阵,当然可以了。

C语言如何把数组a赋值给数组b.
a[i]=b[i];}

C语言如何把数组a赋值给数组b.
int main(){ int a[20] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; int b[20] = {2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40}; memcpy(b, a, 20 * sizeof(int)); return 0;} ...

c语言中怎么把一个数组的值赋到另一个数组中?
void fun1(double str1[],int length) { int i, j;double temp;for(i = 0; i < length; ++i) { for(j = length - 1; j > i; --j) { if(str1[j] > str1[j - 1]) { temp = str1[j];str1[j] = str1[j - 1];str1[j - 1] = temp;} } } for(i = 0;...

C语言中怎么把一维数组赋给另外一个一维数组
1、按元素赋值:遍历一维数组,并将每个元素赋值到二维数组的对应元素上。或者遍历二维数组,将每个元素赋值为一维数组对应值上。优点为操作灵活,可以按照需要任意赋值。2、当一维数组和二维数组类型相同,而且赋值顺序与一维数组中的存储顺序完全相同时,可以用memcpy的方式,直接一次性赋值。如一维数组为a,...

求 高手 C语言 数组和数组之间能直接赋值吗
数组之间是不可以直接赋值的,要直接赋值的话,也只能是利用循环,一个一个的赋值,不过你所要实现的可以通过其他方法来实现,比如取地址运算,把数组a的首地址赋给B数组,不过这要通过指针来实现,还有一种简单点的方法就是拷贝运算,你可以利用c语言库里面已经定义好的函数直接实现你所要实现的功能,...

C语言中,怎么把一个数组的前几个元素赋值给另外一个数组?
最简单的: s2[0]=s1[0]; s2[1]=s1[1]; s2[2]=s1[2];或者你用循环: for(int i=0;i<3;i++)s2[i]=s1[i];

c语言我把一个数组赋值给另外一个数组这样做为什么错了?
数组相当于常量指针,不能用赋值改变的。正确做法如下:include<stdio.h> int main(){int *b;\/\/此处改为普通指针即可 int i;int items[6]={32,11,21,32,43,3};b=items;for(i=0;i<6;i++)printf("%4d",b[i]);}

求高手C语言数组和数组之间能直接赋值吗
可以,C语言中数组和数组之间可以直接赋值。详细解释如下:在C语言中,数组是一种数据结构,用于存储相同类型的元素集合。当两个数组之间进行赋值操作时,实际上是对数组中的元素进行逐个复制。这种赋值操作要求两个数组的数据类型必须匹配,否则编译器会报错。例如,假设有两个相同类型的数组A和B,它们的...

相似回答