我用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] ; 此时就可以把一组字符串变量的地址赋给数组。说白了就是这个数组存的数据就是地址,只是以这个地址开始的空间内存的是字符串的变量
如:char *apczArry[10] ; 此时就可以把一组字符串变量的地址赋给数组。说白了就是这个数组存的数据就是地址,只是以这个地址开始的空间内存的是字符串的变量
第2个回答 2012-11-06
数组名是常量指针,所以你对RevTSN赋值是错误的
这里只能通过值的逐一拷贝到RevTSN中
p = msg1.wParam;
RevTSN[i++] = *p++;追问
这里只能通过值的逐一拷贝到RevTSN中
p = msg1.wParam;
RevTSN[i++] = *p++;追问
这个p是指针吗?
追答是的,类型同你数组元素类型一致
本回答被提问者和网友采纳