用VC++6.0运行一个简单的C程序 出现内存不能为read的错误 急求解答!!急!万分感谢!!

代码如下,新手级代码,很简单的,可是不知道为什么总是出现某指令引用某内存该内存不能为read什么的真的迷茫了啊!!万分感谢给本人解答的人。。。。#include<stdi... 代码如下,新手级代码,很简单的,可是不知道为什么总是出现某指令引用某内存 该内存不能为read什么的 真的迷茫了啊!!万分感谢给本人解答的人。。。。
#include<stdio.h>
#include<string.h>
void main(){
struct student{
int num;
char name[20];
char sex;
int score;
};
struct student stu_1;
struct student *p;
p=&stu_1;
stu_1.num=9;
strcpy(stu_1.name,"li");
stu_1.sex='m';
stu_1.score=476;
printf("number:%d\nname:%s\nsex:%s\nscore:%d\n",(*p).num,(*p).name,(*p).sex,(*p).score);
}
展开
 我来答
汪好帅
2011-12-05 · TA获得超过2829个赞
知道大有可为答主
回答量:1177
采纳率:0%
帮助的人:1394万
展开全部
printf("number:%d\nname:%s\nsex:%s\nscore:%d\n",(*p).num,(*p).name,(*p).sex,(*p).score);

指针用的没错
但是,输出语句格式有个小错误,第三个是%c:改成如下
printf("number:%d\nname:%s\nsex:%c\nscore:%d\n",(*p).num,(*p).name,(*p).sex,(*p).score);
追问
那也不至于出现引用内存不能为"read"的情况啊。。。。这是怎么回事呢
追答
这个问题,着手蛋疼,这要理解printf函数是怎么个标准输入输出了。其还和编译器原理有关。
只能说,这类标准输入输出如果像用%s来输入到单个字符,就报那个错误
而%c格式输出到一个字符串就不会报错
糖酥棍儿
2011-12-05 · TA获得超过692个赞
知道小有建树答主
回答量:393
采纳率:0%
帮助的人:382万
展开全部
printf("number:%d\nname:%s\nsex:%s\nscore:%d\n",(*p).num,(*p).name,(*p).sex,(*p).score);

这个打印语句存在问题 !!结构体里面 char sex; 定义的是字符型的变量,输出的时候格式化符号应该是 %c,而你写的是 %s 是不对的,需要改正,正确的如下:
printf("number:%d\nname:%s\nsex:%c\nscore:%d\n",(*p).num,(*p).name,(*p).sex,(*p).score);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
861625788
2011-12-05 · 超过15用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:39万
展开全部
我帮你把问题找出来了printf("number:%d\nname:%s\nsex:%c\nscore:%d\n",(*p).num,(*p).name,(*p).sex,(*p).score);
sex是单个字符变量用%C而不是%S
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式