| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 565 人关注过本帖
标题:请问是什么原因??
只看楼主 加入收藏
mashrb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:29
注 册:2010-6-30
结帖率:76.92%
收藏
已结贴  问题点数:5 回复次数:1 
请问是什么原因??
我这里申请1字节的内存,却能够存那么长的字符串,是为什么呢??
#include "stdio.h"
int main()
{  
  
   char *reminders[2];
   reminders[0] =malloc(1);
   reminders[1] =malloc(1);
  
   reminders[0]="abcerrrrrrrrrrrrrrrrrrrrrrrrrrrrr";
   reminders[1]="abcdertvtvtvtvtvtvtvtvgertvgrtvvv";
 
   
   printf("reminders[0]=%s\n",reminders[0]);
   printf("reminders[1]=%s\n",reminders[1]);
   system("pause");
}




谢谢!!
搜索更多相关主题的帖子: include system 字符串 
2010-07-19 18:09
erikyo
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:270
专家分:1154
注 册:2010-6-10
收藏
得分:5 
首先你要理解字符串指针的定义,字符串指针是指向你后面赋值的整个字符串的首地址,然后通过这个首地址访问所以的内容。
因此malloc分配不分配内存完全无所谓,不信你去掉malloc试试,只要定义两个字符串指针指向两个字符串,输出还是正确的!
2010-07-19 19:52
快速回复:请问是什么原因??
数据加载中...
 
   



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

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