鱼C论坛

 找回密码
 立即注册
查看: 2543|回复: 11

段错误 程序访问的非法的内存

[复制链接]
发表于 2016-9-12 16:57:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
百度查是这么说的  没懂 段错误 程序访问的非法的内存
#include <stdio.h>

#define URL "http://www.fishc.com"
#define NAME "鱼C工作室"
#define BOSS "小甲鱼"
#define YEAR 2010
#define MONTH 5
#define DAY 20

int main()
{        
        printf("%s 成立于%s 年%s 月 %s 日\n", NAME, YEAR, MONTH, DAY);
        printf("%s 是%s 创立的......\n", NAME, BOSS);
        printf("%s 的域名%s \n", NAME, URL);

        return 0;
}

请师兄们指教下
段错误 访问程序的非法的内存.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-9-12 17:15:58 | 显示全部楼层
本帖最后由 得意的屁 于 2016-9-12 17:21 编辑

又打一遍 问题找到了 不过还是有些不懂 请问
%s  后面的参数当字符串处理
%d 后面的参数当整数处理

printf("%s 成立于 %d 年%d 月%d 日\n', NAME, YEAR, MONTH, DAY);

这里 NAME 定义 是鱼C工作室, 其他三个是数字

在句子中 %s 和 %d  后面不全是大写的英文么?MANE YEAR MONTH DAY 不都是字符串么 为什么用 %s 不行呢?  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-12 18:06:30 | 显示全部楼层
#define YEAR "2010"; 是不是字符串看的不是宏定义的标识符;而是标识符后面的 常量;比如我加个双引号就成了字符串常量了

#define MONTH 5  这个就只是整型常量 ;

你S%打印没问题 都用双引号扩起来就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-9-12 18:59:32 | 显示全部楼层
SingleLove 发表于 2016-9-12 18:06
#define YEAR "2010"; 是不是字符串看的不是宏定义的标识符;而是标识符后面的 常量;比如我加个双引号就 ...

基本明白了 我就是定义没整透彻是吧
%c 后面的参数当字符处理
%f 后面的参数当浮点数处理
%s 后面的参数当字符串处理
%d 后面的参数当整数处理

%d 打印带符号的
%u 打印不带符号的 是么 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-12 21:15:51 | 显示全部楼层
是的;这类问题先百度或者找找书本,都有讲解的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-12 22:41:48 | 显示全部楼层
#define定义的东西类型不明的,只是简单的宏替换而已,最好用const定义变量比较好,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-12 22:58:18 | 显示全部楼层
因为#define定义是宏定义,类型没有表明,所以都用字符串%s输出,我也在学C,有问题可以问我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-13 13:53:44 | 显示全部楼层
飞飞123 发表于 2016-9-12 22:58
因为#define定义是宏定义,类型没有表明,所以都用字符串%s输出,我也在学C,有问题可以问我

好的谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-13 20:05:55 | 显示全部楼层
SingleLove 发表于 2016-9-12 18:06
#define YEAR "2010"; 是不是字符串看的不是宏定义的标识符;而是标识符后面的 常量;比如我加个双引号就 ...

请教下师兄 改双引号 改完了 出现这玩意了  不让保存  请问师兄遇到过没
QQ图片20160913191243.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-13 22:20:58 | 显示全部楼层
可能双引号不能后补 要成对打吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-14 08:00:58 | 显示全部楼层
屁哥 发表于 2016-9-13 20:05
请教下师兄 改双引号 改完了 出现这玩意了  不让保存  请问师兄遇到过没

你把这句英文复制下来到百度一搜就会有解决方法了
应该是文件访问权限的问题;只读?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-14 09:02:53 | 显示全部楼层
SingleLove 发表于 2016-9-14 08:00
你把这句英文复制下来到百度一搜就会有解决方法了
应该是文件访问权限的问题;只读?

这段文字能复制? 怎么复制 快教教 有学一招 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 03:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表