社区
C语言
帖子详情
请教关于结构体
yamzenyi
2009-07-29 07:43:05
声明的结构体变量什么时候可以直接使用什么时候需要申请内存空间
他们两有什么区别?
struct test
{
int a;
char *s;
};
struct test *b;
b=(struct test *)malloc(sizeof(struct test));
...全文
129
16
打赏
收藏
请教关于结构体
声明的结构体变量什么时候可以直接使用什么时候需要申请内存空间 他们两有什么区别? struct test { int a; char *s; }; struct test *b; b=(struct test *)malloc(sizeof(struct test));
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yamzenyi
2009-07-30
打赏
举报
回复
[Quote=引用 2 楼 supermegaboy 的回复:]
引用楼主 yamzenyi 的回复:
声明的结构体变量什么时候可以直接使用什么时候需要申请内存空间
他们两有什么区别?
struct test
{
int a;
char *s;
};
struct test *b;
b=(struct test *)malloc(sizeof(struct test));
当定义一个struct test对象的时候就可以直接使用,而定义为一个指针struct test*的时候需要为它分配空间。
[/Quote]
谢谢解答*^^*
yamzenyi
2009-07-30
打赏
举报
回复
[Quote=引用 4 楼 liao05050075 的回复:]
首先,手动申请的对象所占空间是堆空间,直接定义的占用的是栈空间。一个程序的栈空间是有限的,所以如果你需要的空间很大的话,那么一般要动态申请。
其次,动态申请空间有时能达到节省空间的目的,比如一个数组的大小你要在程序运行时才知道大小,那么你就运行时再申请,而不是直接开一个int[maxn]的数组。
最后,动态申请是算法的实现要求,比如你做一个链表,很自然地,新建一个结点就是要动态申请一个。
[/Quote]
3Q~ 明白了
yamzenyi
2009-07-30
打赏
举报
回复
[Quote=引用 9 楼 hairetz 的回复:]
引用楼主 yamzenyi 的回复:
声明的结构体变量什么时候可以直接使用什么时候需要申请内存空间
他们两有什么区别?
struct test
{
int a;
char *s;
};
struct test *b;
b=(struct test *)malloc(sizeof(struct test));
你先搞清楚,堆和栈的区别,应该就没问题了。
http://blog.csdn.net/hairetz/archive/2009/04/30/4141043.aspx
[/Quote]
谢谢^_^
xuruiyi
2009-07-29
打赏
举报
回复
最好申请完后,判断指针是否为空,这样比较保险!
jn989
2009-07-29
打赏
举报
回复
[Quote=引用 4 楼 liao05050075 的回复:]
首先,手动申请的对象所占空间是堆空间,直接定义的占用的是栈空间。一个程序的栈空间是有限的,所以如果你需要的空间很大的话,那么一般要动态申请。
其次,动态申请空间有时能达到节省空间的目的,比如一个数组的大小你要在程序运行时才知道大小,那么你就运行时再申请,而不是直接开一个int[maxn]的数组。
最后,动态申请是算法的实现要求,比如你做一个链表,很自然地,新建一个结点就是要动态申请一个。
[/Quote]
up!
十八道胡同
2009-07-29
打赏
举报
回复
直接申明的对象可以直接用,指针不行的,要申请空间的
猫已经找不回了
2009-07-29
打赏
举报
回复
[Quote=引用楼主 yamzenyi 的回复:]
声明的结构体变量什么时候可以直接使用什么时候需要申请内存空间
他们两有什么区别?
struct test
{
int a;
char *s;
};
struct test *b;
b=(struct test *)malloc(sizeof(struct test));
[/Quote]
你先搞清楚,堆和栈的区别,应该就没问题了。
http://blog.csdn.net/hairetz/archive/2009/04/30/4141043.aspx
liaoweixiaoyu
2009-07-29
打赏
举报
回复
对象直接使用,指针就需要分配内存了。
jsxdihao
2009-07-29
打赏
举报
回复
四楼正解
lzy0001sl
2009-07-29
打赏
举报
回复
当定义一个结构体对象的时候,系统会在栈上为其分配sizeof(struct)大小的内存空间。当定义一个结构体指针的时候在栈上分配一个4字节的地址空间,因此定义的指针需要自己申请内存。
[Quote=引用楼主 yamzenyi 的回复:]
声明的结构体变量什么时候可以直接使用什么时候需要申请内存空间
他们两有什么区别?
struct test
{
int a;
char *s;
};
struct test *b;
b=(struct test *)malloc(sizeof(struct test));
[/Quote]
Arnold9009
2009-07-29
打赏
举报
回复
struct test *b; -----这里是声明了一个结构体指针b
b=(struct test *)malloc(sizeof(struct test)); ---这里是将malloc分配的内存的指针进行强制类型转换,然后赋给结构体指针b
liao05050075
2009-07-29
打赏
举报
回复
首先,手动申请的对象所占空间是堆空间,直接定义的占用的是栈空间。一个程序的栈空间是有限的,所以如果你需要的空间很大的话,那么一般要动态申请。
其次,动态申请空间有时能达到节省空间的目的,比如一个数组的大小你要在程序运行时才知道大小,那么你就运行时再申请,而不是直接开一个int[maxn]的数组。
最后,动态申请是算法的实现要求,比如你做一个链表,很自然地,新建一个结点就是要动态申请一个。
科技完美生活
2009-07-29
打赏
举报
回复
是啊,是指针的话就有可能要申请,但是也要看指针变量是怎么用的
飞天御剑流
2009-07-29
打赏
举报
回复
[Quote=引用楼主 yamzenyi 的回复:]
声明的结构体变量什么时候可以直接使用什么时候需要申请内存空间
他们两有什么区别?
struct test
{
int a;
char *s;
};
struct test *b;
b=(struct test *)malloc(sizeof(struct test));
[/Quote]
当定义一个struct test对象的时候就可以直接使用,而定义为一个指针struct test*的时候需要为它分配空间。
city_t
2009-07-29
打赏
举报
回复
只要不用指针就能直接使用吧
书上说用指针快,效率高
真正有什么差别我也不知道
lijian22500
2009-07-29
打赏
举报
回复
要区分堆 和 栈
C++基础入门教程(三):数组、字符串、
结构体
、共用体
今天的标题取得..好严肃的感觉。(小若:咳噗) 这章的内容虽然还是很详(lao)细(dao),但已经开始有很多值得记录的内容了~ 那么,今天就来初次介绍数组与字符串…以及
结构体
..还有共用体..吧。 1.数组 我记得大四实习的时候,
请教
同事:“什么是属主?”(其实是和数据库相关的东西) 然后同事惊讶地说道:“啊,你连数组都不知道..这,基础还是要好好补补…呐,数组的意思呢,是这样的…” 我听着听着就不对劲,“等等,这是数组…其实我是问这个属主…” 然后同事松了一口气,估计心里在想,“唉,吓死我,我以为来了个浑水摸鱼的实习生了”。 等等,我好像跑题了。 那么,数组这么简单,我是不可能给大家介
大一上c语言课程设计写的超市管理系统.zip
C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这包括了解课程设计的主题、目标以及需要解决的问题。这将有助于你确定设计的范围和方向。 选择项目主题:选择一个与C语言相关的项目主题。例如,你可以设计一个学生成绩管理系统、一个简单的文本编辑器或一个游戏等。确保所选主题既具有挑战性又能够展示你的C语言编程技能。 进行问题分析:一旦确定了项目主题,你需要对问题进行深入分析。这包括确定问题的输入和输出、理解问题的要求和限制条件,以及将复杂问题分解为更小的子问题。这将有助于你更好地理解和解决问题。 设计算法和数据结构:针对项目需求,设计合适的算法和数据结构。这包括确定如何存储和处理数据、如何设计函数和模块等。 编写代码:使用C语言编写代码,实现项目功能。注意遵守C语言的语法规则,确保代码的可读性和可维护性。 测试和调试:在编写完代码后,进行测试和调试。确保代码能够正确运行并满足项目需求。使用调试工具和技术来查找和修复代码中的错误。 文档编写:编写项目文档,包括项目说明、功能介绍、代码注释等。这将有助于其他人理解你的项目并复用你的代码。 提交和展示:最后,将你的课程设计项目提交给教师或相关人员,并在课堂上进行展示。展示时可以介绍项目的功能、实现过程以及遇到的挑战和解决方案等。 在进行C语言课程设计时,还需要注意以下几点: 遵守编程规范,包括变量命名、代码缩进、注释等。 充分利用C语言的特点和优势,如指针、
结构体
、文件操作等。 注重实践和应用,通过解决实际问题来加深对C语言的理解和应用能力。 在遇到困难时,及时向教师或同学
请教
,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
2017-2018-2学期17计算机1《C语言程序设计II》授课资料.zip
C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这包括了解课程设计的主题、目标以及需要解决的问题。这将有助于你确定设计的范围和方向。 选择项目主题:选择一个与C语言相关的项目主题。例如,你可以设计一个学生成绩管理系统、一个简单的文本编辑器或一个游戏等。确保所选主题既具有挑战性又能够展示你的C语言编程技能。 进行问题分析:一旦确定了项目主题,你需要对问题进行深入分析。这包括确定问题的输入和输出、理解问题的要求和限制条件,以及将复杂问题分解为更小的子问题。这将有助于你更好地理解和解决问题。 设计算法和数据结构:针对项目需求,设计合适的算法和数据结构。这包括确定如何存储和处理数据、如何设计函数和模块等。 编写代码:使用C语言编写代码,实现项目功能。注意遵守C语言的语法规则,确保代码的可读性和可维护性。 测试和调试:在编写完代码后,进行测试和调试。确保代码能够正确运行并满足项目需求。使用调试工具和技术来查找和修复代码中的错误。 文档编写:编写项目文档,包括项目说明、功能介绍、代码注释等。这将有助于其他人理解你的项目并复用你的代码。 提交和展示:最后,将你的课程设计项目提交给教师或相关人员,并在课堂上进行展示。展示时可以介绍项目的功能、实现过程以及遇到的挑战和解决方案等。 在进行C语言课程设计时,还需要注意以下几点: 遵守编程规范,包括变量命名、代码缩进、注释等。 充分利用C语言的特点和优势,如指针、
结构体
、文件操作等。 注重实践和应用,通过解决实际问题来加深对C语言的理解和应用能力。 在遇到困难时,及时向教师或同学
请教
,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
基础课程,《程序设计基础(C语言)》课程仓库.zip
C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这包括了解课程设计的主题、目标以及需要解决的问题。这将有助于你确定设计的范围和方向。 选择项目主题:选择一个与C语言相关的项目主题。例如,你可以设计一个学生成绩管理系统、一个简单的文本编辑器或一个游戏等。确保所选主题既具有挑战性又能够展示你的C语言编程技能。 进行问题分析:一旦确定了项目主题,你需要对问题进行深入分析。这包括确定问题的输入和输出、理解问题的要求和限制条件,以及将复杂问题分解为更小的子问题。这将有助于你更好地理解和解决问题。 设计算法和数据结构:针对项目需求,设计合适的算法和数据结构。这包括确定如何存储和处理数据、如何设计函数和模块等。 编写代码:使用C语言编写代码,实现项目功能。注意遵守C语言的语法规则,确保代码的可读性和可维护性。 测试和调试:在编写完代码后,进行测试和调试。确保代码能够正确运行并满足项目需求。使用调试工具和技术来查找和修复代码中的错误。 文档编写:编写项目文档,包括项目说明、功能介绍、代码注释等。这将有助于其他人理解你的项目并复用你的代码。 提交和展示:最后,将你的课程设计项目提交给教师或相关人员,并在课堂上进行展示。展示时可以介绍项目的功能、实现过程以及遇到的挑战和解决方案等。 在进行C语言课程设计时,还需要注意以下几点: 遵守编程规范,包括变量命名、代码缩进、注释等。 充分利用C语言的特点和优势,如指针、
结构体
、文件操作等。 注重实践和应用,通过解决实际问题来加深对C语言的理解和应用能力。 在遇到困难时,及时向教师或同学
请教
,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言 课程设计+大作业+小程序集,纯字符画逻辑实现.zip
C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这包括了解课程设计的主题、目标以及需要解决的问题。这将有助于你确定设计的范围和方向。 选择项目主题:选择一个与C语言相关的项目主题。例如,你可以设计一个学生成绩管理系统、一个简单的文本编辑器或一个游戏等。确保所选主题既具有挑战性又能够展示你的C语言编程技能。 进行问题分析:一旦确定了项目主题,你需要对问题进行深入分析。这包括确定问题的输入和输出、理解问题的要求和限制条件,以及将复杂问题分解为更小的子问题。这将有助于你更好地理解和解决问题。 设计算法和数据结构:针对项目需求,设计合适的算法和数据结构。这包括确定如何存储和处理数据、如何设计函数和模块等。 编写代码:使用C语言编写代码,实现项目功能。注意遵守C语言的语法规则,确保代码的可读性和可维护性。 测试和调试:在编写完代码后,进行测试和调试。确保代码能够正确运行并满足项目需求。使用调试工具和技术来查找和修复代码中的错误。 文档编写:编写项目文档,包括项目说明、功能介绍、代码注释等。这将有助于其他人理解你的项目并复用你的代码。 提交和展示:最后,将你的课程设计项目提交给教师或相关人员,并在课堂上进行展示。展示时可以介绍项目的功能、实现过程以及遇到的挑战和解决方案等。 在进行C语言课程设计时,还需要注意以下几点: 遵守编程规范,包括变量命名、代码缩进、注释等。 充分利用C语言的特点和优势,如指针、
结构体
、文件操作等。 注重实践和应用,通过解决实际问题来加深对C语言的理解和应用能力。 在遇到困难时,及时向教师或同学
请教
,并查阅相关资料和文档。 通过以上步骤和建议,你可以完成一个高质量的C语言课程设计项目,并提升自己的编程能力和实践经验。
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章