| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 983 人关注过本帖
标题:指教 动态分配内存的问题
只看楼主 加入收藏
heizhizhu007
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2016-2-19
结帖率:92.31%
收藏
已结贴  问题点数:10 回复次数:5 
指教 动态分配内存的问题
菜鸟指教


问题1
下面注释部分里的
arr=(int *)malloc(sizeof(int)*input);
arr=(int *)malloc(input*sizeof(int));
这2行语句是一样的吗?  2个都能正常运行


问题2
malloc函数的返还类型是 void*    所以用(int *) 语句来 把它转换成 int类型  是这样的吗?

问题3
int main(int argc,char **argv)
看了很多次  这句还是不太明白 这里明明说明了 int argc,char **argv   这2个 不过在main内部里是没发现能用它

我是菜鸟可能描述的有些不对  望高手们解答菜鸟问题  谢谢~~!!!


#include<stdio.h>

int main(int argc,char **argv)
{
    int input;
    int *arr;

    printf("输入需要元素数量:");
    scanf("%d",&input);

    arr=(int *)malloc(sizeof(int)*input);       /* arr=(int *)malloc(input*sizeof(int)); */

    free(arr);

    return 0;
}

[此贴子已经被作者于2016-3-13 10:42编辑过]

搜索更多相关主题的帖子: include 动态 
2016-03-13 10:37
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
你说的那两句是一样的。malloc(sizeof(int)*input)是申请了input个int(通常4个字节)大小的内存(4*input字节),(int *)是表明用来存储int类型数据的,也可以理解为转换。int argc,char **argv是程序(.exe)的入口参数,可有可无。如果每次运行都要输入参数,用cmd这样运行,eg. example.exe 1 2 ,程序main()内部要这样调用,int a=atoi(argv[1],10),int b=atoi(argv[2],10),a=1,b=2,参数有3个,即argc=3。为什么不从argv[0]开始呢,因为argv[0]是程序本身的名字,即argv[0]="example.exe",这对我们来说是没有用的参数。

[此贴子已经被作者于2016-3-13 10:58编辑过]


   唯实惟新 至诚致志
2016-03-13 10:44
heizhizhu007
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2016-2-19
收藏
得分:0 
回复 2楼 qq1023569223
4*input字节  这句是
4 乘 input  吗?

arr=(int *)malloc(sizeof(int)乘input);
 arr=(int *)malloc(input乘sizeof(int));


以上2句 我可以这样理解吗?

[此贴子已经被作者于2016-3-13 11:15编辑过]

2016-03-13 11:13
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
对,那个是乘以的意思。

   唯实惟新 至诚致志
2016-03-13 11:32
heizhizhu007
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2016-2-19
收藏
得分:0 
回复 4楼 qq1023569223
明白了 多谢
2016-03-13 11:35
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1個班7個人,和7個班每班1人,意義一樣嗎?

順便説一句:別再告訴新手int是多少字節爲好!

授人以渔,不授人以鱼。
2016-03-13 19:06
快速回复:指教 动态分配内存的问题
数据加载中...
 
   



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

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