当前位置: 代码迷 >> C语言 >> 请教一个指针创建数组的问题.
  详细解决方案

请教一个指针创建数组的问题.

热度:143   发布时间:2005-12-26 22:26:00.0
请教一个指针创建数组的问题.
main()
{
int **b,i;
b=(int)malloc(sizeof(8));
for(i=1;i<4;i++)b[i]=(int)malloc(sizeof(8));
}

main()
{
int **b,i;
b=(int **)malloc(sizeof(8));
for(i=1;i<4;i++)b[i]=(int *)malloc(sizeof(8));
}

这两个代码都能顺利创建数组. 但请问它们有malloc前面的强制转换数据类型有没有意义??

[此贴子已经被作者于2005-12-26 22:31:55编辑过]

搜索更多相关的解决方案: 指针  

----------------解决方案--------------------------------------------------------

第一:地址值本身就是一个整数值。所以在int的整数范围内的地址值可以用int的一个整数表示。你甚至可以用一个char变量表示一个在0-255之间的地址。
第二:虽然上面例子中的两个表达式:b=(int)malloc(sizeof(8))和b[i]=(int)malloc(sizeof(8))可以这么写,但是编译器还是把它们分别变成b=(int **)(int)malloc(sizeof(8))和*(b+i)=(int *)(int)malloc(sizeof(8))。也就是在你的强制转换后再进行强制转换。


----------------解决方案--------------------------------------------------------
是这样啊.
----------------解决方案--------------------------------------------------------
  相关解决方案