| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1660 人关注过本帖
标题:如何用malloc函数为指针分配内存空间?
只看楼主 加入收藏
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
结帖率:90.38%
收藏
已结贴  问题点数:20 回复次数:3 
如何用malloc函数为指针分配内存空间?
代码如下:
程序代码:
#include"stdio.h"
int main(void){
    char *a[50];
    return 0;
}

如何用malloc函数为指针a分配30个内存空间?为指针a[0]分配40个内存空间?
搜索更多相关主题的帖子: 分配 指针 内存 空间 函数 
2020-06-12 22:10
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:20 
char **a=(char **)malloc(30*sizeof(char *));
*(a+0)=(char *)malloc(40*sizeof(char));
2020-06-12 23:37
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
收藏
得分:0 
以下是引用fulltimelink在2020-6-12 23:37:41的发言:

char **a=(char **)malloc(30*sizeof(char *));
*(a+0)=(char *)malloc(40*sizeof(char));

但如果将指针申明为char *a[50]的形式,就无法用malloc为指针a分配内存空间。
代码如下:
程序代码:
#include"stdio.h"
int main(void){
    char *q;
    q=(char *)malloc(sizeof(char)*30);
    char *a[50];
    a=(char **)malloc(30*sizeof(char *));
    a[0]=(char *)malloc(40*sizeof(char));
    char **b;
    b=(char **)malloc(30*sizeof(char *));
    *b=(char *)malloc(40*sizeof(char));
    return 0;
}

在上面代码运行时显示这行语句有问题:
a=(char **)malloc(30*sizeof(char *));


[此贴子已经被作者于2020-6-13 01:52编辑过]

2020-06-13 01:51
fulltimelink
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:171
专家分:752
注 册:2020-4-1
收藏
得分:0 
指针数组不需要动态分配空间,指针数组也是一个数组,数组名是一个“常量”
2020-06-13 06:36
快速回复:如何用malloc函数为指针分配内存空间?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022153 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved