社区
C语言
帖子详情
内存分配的一个问题!
nickcheng
2003-10-16 11:41:25
这样定义了一个结构
struct aa
{
char *ss;
}bb;
象下面这么调用总有错!
bb.ss[0]='a';
但是如果为ss分配内存空间后就可以!
但是如果这样定义
char *str;
再这样使用
str[0]='a';
就没有问题
这是为什么?
...全文
37
8
打赏
收藏
内存分配的一个问题!
这样定义了一个结构 struct aa { char *ss; }bb; 象下面这么调用总有错! bb.ss[0]='a'; 但是如果为ss分配内存空间后就可以! 但是如果这样定义 char *str; 再这样使用 str[0]='a'; 就没有问题 这是为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
playboyxp
2003-10-16
打赏
举报
回复
你的指针还没分配内存,不能这么用
darcymei
2003-10-16
打赏
举报
回复
bb.ss="aaa"
No problem!ss会指向系统为你分配一段const字符串的首地址
bb.ss[0]='a'
Big problem!对未知内存进行赋值操作。
tonybaobao
2003-10-16
打赏
举报
回复
都是有问题的。你要记住,凡是定义指针后,一定要对其分配内存空间,否则指针不知道指向何处,因此你用str[0]所指向的内容就未知,如果对其进行赋值岂不是很危险?
Hot_Forever
2003-10-16
打赏
举报
回复
不过按照你的赋值方法的话,2种情况下都是有问题的
Hot_Forever
2003-10-16
打赏
举报
回复
当你用下面那种形式的时候,str="aaaaaaa",编译器会自动的为str分配内存,而在结构体中间的话,编译器不会自动给str分配内存,所以出错
likangnian0128
2003-10-16
打赏
举报
回复
char *str;
str[0]='a';
ft,这个绝对是有问题的。
liao2001
2003-10-16
打赏
举报
回复
都有问题,没有问题是因为你很走运,你可以去摸奖了!
roselu
2003-10-16
打赏
举报
回复
学习!
内存分配
方式与
内存分配
算法
内存分配
算法,其实就是:有一大块空闲的资源,如何合理地分配资源?
内存分配
的思想可以用到很多其他的领域。比如Java虚拟机是如何将
内存分配
与回收的?再比如文件系统是如何将磁盘块分配与回收的?其本质就是如何把...
C语言中
内存分配
在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。...第2节主要介绍C语言中
内存分配
及释放函数、函数的功能,以及如何调用这些函数申请
操作系统-- 连续
内存分配
、非连续
内存分配
文章目录一、连续
内存分配
1、内存碎片的
问题
(1)外部碎片(2)内部碎片2、连续
内存分配
算法(1)首次适配(2)最优适配(3)最差适配3、碎片整理方法4、连续
内存分配
的缺点二、非连续
内存分配
1、非连续分配的优点2...
静态
内存分配
与动态
内存分配
平时看c/c++的书籍时,总会看到一种观点,说是C/C++语言使用的时候动态
内存分配
是最重要的,使用malloc等函数分配的内存必须要释放,否则及其容易出现内存泄露。但是自己有时候挺奇怪的,啥时候的内存要自己释放,啥...
Linux
内存分配
/内存管理 相关接口
一个
进程可以通过增加堆的尺寸来分配内存。堆是
一个
用来存放动态分配的变量的空间,它位于未初始化数据段(bss)之后,它的顶叫做 `program break` ,这个地方会根据内存的分配和释放而变化。一般来讲C语言堆内存的...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章