社区
C语言
帖子详情
内存分配的一个问题!
nickcheng
2003-10-16 11:41:25
这样定义了一个结构
struct aa
{
char *ss;
}bb;
象下面这么调用总有错!
bb.ss[0]='a';
但是如果为ss分配内存空间后就可以!
但是如果这样定义
char *str;
再这样使用
str[0]='a';
就没有问题
这是为什么?
...全文
64
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
打赏
举报
回复
学习!
内存泄露Demo leaky app
内存泄露Demo leaky app
查看内存使用情况的汇编源代码
查看内存使用情况的汇编源代码
C/C++指针经典资料大全
C/C++指针经典资料大全,十余部经典资料书籍,是您精通C指针的理想教程。
C/C++——程序的
内存分配
**C/C++程序
内存分配
**一、预备知识—程序的
内存分配
一个
由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(
redis的
内存分配
问题
redis的
内存分配
问题
redis是个对内存依赖性很强的NoSql数据库,在内存足够的情况下性能出色如果只有一台机子去部署redis,一定要特别小心。 比如我有台24G的服务器,理所当然我会将大量
内存分配
给redis。比如20G的内存,
问题
来了, 当你对redis插入数据后,redis会异步将数据dump到硬盘中想起来很完美,
问题
是它会fork
一个
进程,并占去同样大小的内存
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章