读书人

malloc 一个数组类型类型强制转换解

发布时间: 2012-05-12 15:39:31 作者: rapoo

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语言

热点推荐