读书人

malloc申请一个指针数组如何写

发布时间: 2013-09-07 14:12:44 作者: rapoo

malloc申请一个指针数组怎么写
char *pcAllLineStandarData[1000]; 我想使用malloc 声请这样一个指针数组,应该怎么写啊?
[解决办法]
typedef PDATA char *pcAllLineStandarData;
PDATA *pdata = malloc(sizeof(PDATA ));
[解决办法]
char *pcAllLineStandarData=(char *)malloc(sizeof(char)*1000)
[解决办法]


for(int i = 0; i < 1000; ++i)
pcAllLineStandarData[i] = (char *)malloc(sizeof(char) * BUFSIZE);
//BUFSIZE是你申请的存储单元的数目,可以自己根据情况设定

[解决办法]
楼主刚学习c语言吧。

malloc是动态随机分配内存空间的方法。

可以根据需要分配内存空间给程序使用

(char*)malloc(sizeof(char)*20)


的意思是,动态分配空间为20个char型数据大小的空间。

并且将返回的指针类型强制转换成char型指针。
[解决办法]
引用:
Quote: 引用:

typedef PDATA char *pcAllLineStandarData;
PDATA *pdata = malloc(sizeof(PDATA ));


我要申请一个数组,数组的每个元素都是指针,你这个可以吗?看着挺对的



for(int i = 0; i < 1000; ++i)
pcAllLineStandarData[i] = (char *)malloc(sizeof(char) * BUFSIZE);
//BUFSIZE是你申请的存储单元的数目,可以自己根据情况设定
//BUFSIZE 也就是你每个指针需要的大小, 你看实际情况设定

[解决办法]

typedef char* (*PP)[1000];
PP p;
p = (PP)malloc(sizeof(*p));
//注意还有初始化

[解决办法]
引用:
Quote: 引用:


for(int i = 0; i < 1000; ++i)
pcAllLineStandarData[i] = (char *)malloc(sizeof(char) * BUFSIZE);
//BUFSIZE是你申请的存储单元的数目,可以自己根据情况设定



for(int i = 0; i < 1000; ++i)
pcAllLineStandarData[i] = (char *)malloc(sizeof(char) * BUFSIZE);
我要申请一个数组,数组的每个元素都是指针, 没看懂,你写的,求指点



你要申请1000个char* 指针嘛,但是指针大小你没给, 我就用 BUFSIZE代替了,

[解决办法]
先计算出要分配内存的大小,然后直接malloc就可以,malloc之后做下强制类型转换。
指针数组实际上不就是二维指针吗,很简单
[解决办法]

#define MAX 1000
(char **)malloc(sizeof(char *) * MAX)

其实指针变量大小都是sizeof(void *),因此上面语句也可以替换成

(char **)malloc(sizeof(void *) * MAX)

在32为机器上指针变量都是4字节,因此又可以写成

(char **)malloc(4 * MAX)

读书人网 >C语言

热点推荐