c语言二级指针申请空间问题

作者:用户 来源:互联网 浏览:391 次 时间:2016-09-06 17:56:25

c语言

c语言二级指针申请空间问题 - 摘要: c语言二级指针申请空间问题1Cchar**data;*data=malloc(100);为什么段错误应该怎么申请*data=malloc(sizeof(char*)*100);for(inti=0;i

问题描述

c语言二级指针申请空间问题

char **data;
*data = malloc (100);
为什么段错误
应该怎么申请

解决方案

 *data = malloc (sizeof(char *) * 100);
for (int i = 0; i < 100; i++)
{
    data[i] = malloc(sizeif(char));
}
解决方案二:

**只申请两次。共1M左右内存
char **data=malloc(sizeof(char *)*100);
data[0] =malloc(1000000*sizeof(char));

for(int i=1;i<100;i++)
{
data[i] =data[i-1]+10000;
}
.....................
free(data[0]);
free(data);**

解决方案三:

**只申请两次。共1M左右内存
char **data=malloc(sizeof(char *)*100);
data[0] =malloc(1000000*sizeof(char));

for(int i=1;i<100;i++)
{
data[i] =data[i-1]+10000;
}
.....................
free(data[0]);
free(data);**

解决方案四:

申请 101次.100个指针空间,数据空间,每次申请100~199字节内存。
char **data=(char **)malloc(sizeof(char *)*100);

for(int i=0;i<100;i++)
{
data[i] =(char*)malloc(sizeof(char)*(100+rand()%100);
}
.....................
for(int i=0;i<100;i++)
free(data[i]);
free(data);**

解决方案五:

http://ask.csdn.net/questions/226143

解决方案六:

data没有初始化:

char **data, *p;
*data=p;
 p = (char*)malloc (100*sizeof(char));
解决方案七:

这样:

 data没有初始化:

char **data, *p;
data=&p;
 p = (char*)malloc (100*sizeof(char));
解决方案八:

C语言中的二级指针和二维数组问题
C语言中的二级指针和二维数组问题
C语言指针问题快速解惑

解决方案九:

char **data;
data = (char **) malloc(sizeof(char ));
for (i=0; i<100; i++)
{
data[i] = (char
) malloc(100 * sizeof(char));
}

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击
云栖社区(yq.aliyun.com)为您免费提供c语言二级指针申请空间问题相关信息,包括 c语言 的信息 ,所有c语言二级指针申请空间问题相关内容均不代表云栖社区的意见! 该页面h5页面的地址是:https://m.aliyun.com/yunqi/wenzhang/show_22796,您可以点击c语言二级指针申请空间问题-手机站访问。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备

热点导航