BCB高手帮我回答下这个问题。

[复制链接]
查看11 | 回复3 | 2011-9-15 07:41:20 | 显示全部楼层 |阅读模式
int*a;a=(int*)malloc(10*sizeof(int))是什么意思?为什么这样定义后能调用a[0]a[1]...a[9]a是一个数组吗?难道是指针数组?最主要不理解(10*sizeof(int))这个10是不是简单地只参加计算,还是指名定义下标为[10]的数组?
回复

使用道具 举报

千问 | 2011-9-15 07:41:20 | 显示全部楼层
1、malloc是动态分配内存,返回的是void*,所以强制转换为(int*)2、(10*sizeof(int))以当前计算int的长度*10的内存大校目前32位计算机系统是40个字节。3、指针和数组在使用方面没有太大的区别,数组其实就是一个有名,有大小的指针。所以在使用方面,支持以数组下标符号方式来访问a[0]a[1]...a[9]。4、如果用指针方式那么就是*(a1)访问第2个元素,*a本身指的就是第一个元素,*(a0)同样也是指第一个元素。
回复

使用道具 举报

千问 | 2011-9-15 07:41:20 | 显示全部楼层
问题补充:19196730撒问题?什么问题你也简单说下可以不说说大概的问题哦,可以联系我哈哈一个还不太老的程序员的体会(初稿)
回复

使用道具 举报

千问 | 2011-9-15 07:41:20 | 显示全部楼层
这个跟是不是BCB高手没什么关系。。。是动态分配内存,10是说明数组的大小是10个数,sizeof计算出int型数据所占用字节大小
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行