标题:请教一个小小问题,望大众指教!
取消只看楼主
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
 问题点数:0 回复次数:7 
请教一个小小问题,望大众指教!

char (*aaa)[80];
aaa=(char *[80])malloc(80*sizeof(char));
意思就是可以强制一个地址变量或地址为用户所需要的类型?
但是其中的(char *[80])没有变量我就不好理解了!
为什么可以这样写?谁能举个好理解些的程序出来呢?谢谢了!
搜索更多相关主题的帖子: 指教 变量 aaa char 
2007-09-18 18:54
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 
我不太懂,我想知道为什么可以这样写?

比如说我随便一个地址:
#define ok 0xBA000000
*((char *[80])ok)="halo!";

象我上面这样写可以吗?
2007-09-18 19:11
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 
有人可以告诉我吗?
2007-09-18 19:31
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 
不,楼上的,书上写的这是对的
源程序:
unsigned int (far *screen)[80];
screen=(unsigned int (far *)[80])MK_FP(0xB800,));


我只是把它改成好理解点的程序~希望有人能告诉我,为什么可以这样写(unsigned int (far *)[80]),我是新手来的!谢谢了!
2007-09-18 20:33
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 
先谢谢雨中飞燕的回复!

问题char* [80];这个可以没有变量吗?这样算什么呢?申请内存空间?然后返回一个地址给aaa吗?
2007-09-18 22:04
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 
顶!有人可以告诉我吗?
2007-09-19 18:16
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 
以下是引用chllin在2007-9-19 20:00:21的发言:
char (*aaa)[80];
aaa=(char *[80])malloc(80*sizeof(char));

我认为这么写是有问题的。问题出在第二行,aaa已经定义为 char (*)[80] ,给aaa赋值的类型应该一致,所以应该为
aaa=(char (*)[80])mal......;

嗯!~谢谢回复!


源程序:
unsigned int (far *screen)[80];
screen=(unsigned int (far *)[80])MK_FP(0xB800,));

2007-09-19 20:39
不懂装懂
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-7-22
得分:0 
回复:(chllin)char (*aaa)[80];aaa=(char *[80])ma...
能告诉我为什么可以这样写吗?
程序是怎么运行的?还有编译器是怎么读取的?
2007-09-19 20:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-171006-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.212141 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved