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型指针。
[解决办法]
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));
//注意还有初始化
[解决办法]
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)