用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);
} 展开
#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);
} 展开
3个回答
展开全部
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);
指针用的没错
但是,输出语句格式有个小错误,第三个是%c:改成如下
printf("number:%d\nname:%s\nsex:%c\nscore:%d\n",(*p).num,(*p).name,(*p).sex,(*p).score);
追问
那也不至于出现引用内存不能为"read"的情况啊。。。。这是怎么回事呢
追答
这个问题,着手蛋疼,这要理解printf函数是怎么个标准输入输出了。其还和编译器原理有关。
只能说,这类标准输入输出如果像用%s来输入到单个字符,就报那个错误
而%c格式输出到一个字符串就不会报错
展开全部
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);
这个打印语句存在问题 !!结构体里面 char sex; 定义的是字符型的变量,输出的时候格式化符号应该是 %c,而你写的是 %s 是不对的,需要改正,正确的如下:
printf("number:%d\nname:%s\nsex:%c\nscore:%d\n",(*p).num,(*p).name,(*p).sex,(*p).score);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我帮你把问题找出来了printf("number:%d\nname:%s\nsex:%c\nscore:%d\n",(*p).num,(*p).name,(*p).sex,(*p).score);
sex是单个字符变量用%C而不是%S
sex是单个字符变量用%C而不是%S
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询