首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

malloc 一个数组类型,门类强制转换

2013-09-28 
malloc 一个数组类型,类型强制转换int len2int *fds[2]fds(int*[2])malloc(sizeof(int*[2])*len)这样

malloc 一个数组类型,类型强制转换
  int len=2;
  int *fds[2];
  fds=(int*[2])malloc(sizeof(int*[2])*len);

这样为什么不行, 不可以审请数组类型吗

fork2.c: 在函数‘exec’中:
fork2.c:12:7: 错误:类型转换指定了数组类型

[解决办法]
我了个擦。。。 这C用的 - -

看fds,你的原意应该是说:

int len = 2;
int *fds = NULL;
fds = (int*)malloc(sizeof(int) * 2);

如果这还不是你的原意,你想要的是两个int*,那么:

int len = 2;
int* *fds = NULL;
fds = (int*)malloc(sizeof(int*) * 2);

但我相信第二种不是你的本意。

[解决办法]
fds 是数组名,不是指针。
[解决办法]

引用:
  int fds[len][2];
我是想动态申请一个 长度为len 的二维数组。


又想用数组,又想动态申请?
建议重新设计。
[解决办法]
fds是常量,不能赋值。
[解决办法]
引用:
  int fds[len][2];
我是想动态申请一个 长度为len 的二维数组。


c 中没有多维数组,只有一维数组,所谓的多维数组只不过是元素类型为数组的一维数组

热点排行