永发信息网

非法的指针转换问题!!!

答案:5  悬赏:10  手机版
解决时间 2021-03-05 11:24
void SendStr(unsigned char *p)
{
while((*p)!='\0')
{
wr_data( *p++);
}
}
void main()
{
a=panduan (); //panduan()和a都是unsigned char
SendStr(a);
}
求指教 麻烦看下错误在哪!感谢!

panduan ()变量的个数不确定 所以我不能用发送单个的字符吧!如果用\0结尾也不好修改 求指点
。或者把a转换成其他什么类型的呢!现在编译的情况是非法的指针转换。
我想实现的就是把变量a发送出去!a的个数由panduan (),panduan ()的个数不确定! 先谢谢了。。。
最佳答案
如果a是基本变量的话,
SendStr(a); 这个错了,改为
SendStr(&a);
全部回答
一楼的很详细~~~
非法指针转换是一个很大的问题,说明你的基础还不牢固.注意看看书. 你的表达我不是很理解: 是不是panduan()所返回的字符个数不确定?可以把变量a的类型改为指针类型,然后pandduan()返回数组的首地址,但是这样要注意变量的域生命周期.即最好用外部(全局)变量. 第二种:因为c中不能直接把一个数组返回,但是你可以自定义类型,定义个字符串型,注意是串,不是char,char是字符型.那么函数也可以直接返回. 第三种,不用函数返回赋值,把a改为数组,以形参的形式把数组a的地址传入panduan(),然后直接在运行的过程中赋值.我比较推荐这个方法. 个数不确定,就用动态分配内存,由用户指定大小,查下malloc函数.
[请参考这样的程序结构] unsigned char *a; unsigned char *panduan() { unsigned char *b; // 其他程序段 b=(unsigned char *)malloc(sizeof(unsigned char)*n); //这里n是本次要发送的字节个数 // 填充b[0]--b[n-1]要发送的字节 return(b); } void SendStr(unsigned char *p) { while((*p)!='\0') { wr_data( *p++); } } void main() { unsigned char *a; a=panduan (); //panduan()和a都是unsigned char if ( a ) SendStr(a); if ( a ) free(a); }
SendStr期待一个字符串,你却传给它一个字符。 即使你改为SendStr(&a)也会出错,因为a作为一个字符,根本不是以='\0'结尾的。 既然你只需要传给SendStr一个字符,就没必要用指针 void SendStr(unsigned char c) { wr_data( c); } 如果你需要传一个字符串,那么就应该把panduan()和a的类型改为unsigned char*, 并且以'\0'结尾 既然panduan ()的个数不确定,那么它的返回值的类型肯定不是unsigned char吧,unsigned char是单个字符。 如果panduan ()的个数不确定,那么你怎么知道其中字符的个数呢?所以它必须以'\0'结尾,否则这个函数就是错的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
北京华联生活超市紫金店地址在什么地方,想过
米兰大教堂建于哪一年
福鑫酒楼地址在哪,我要去那里办事
根据板块构造学说,世界上的火山、地震主要集
电流源为什么不能开路
请问这道题用VF怎么做啊?将输入的小写字母转
中国邮政(王庄邮政支局)地址在哪,我要去那里
请中介办理二手房过户要交多少钱给中介
【全民健康生活方式行动】全民健康生活方式行
阜城县奥通汽贸有限公司这个地址在什么地方,
恒信大食堂我想知道这个在什么地方
含有家禾我喜欢你这几个字的藏头诗
监控室的辐射大不大?对女生的害处?
海恩斯·莫里斯(上海)哈办事处地址在什么地方
一袋米中有一点点发霉的你 这袋米还可以吃那
推荐资讯
中国农业银行卡丢了 普通得储蓄卡 听说补卡不
24除以4等于6表示24里面有( )个( )应该怎
打着打着突然掉线,然后就怎么都连不上了,咋
【好的学习习惯】本学期到的良好的学习习惯有
白庄社区居委会我想知道这个在什么地方
梦见自己化妆然后又卸妆,然后照镜子,发现脸
皮粉色搭配什么颜色
广东美术联考229,请问在广东可以读哪些比较
卢洲北路/府北路(路口)地址有知道的么?有点
【实验设计,要在0.10之间设几个浓度梯度,怎么
有什么是在阳台里上种的藤蔓植物,最好是很好
阳光家苑小区怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?