为什么不会输出之前输入的值,而是乱码呢?

[复制链接]
查看11 | 回复2 | 2011-3-18 20:24:06 | 显示全部楼层 |阅读模式
定义的STU没有指向下一个节点能力,不具备链表功能,所以用malloc开辟内存时候,造成结构体之间没有连贯,因此用s++和p++将指向不确定的内存空间,自然那里要显示一堆乱码。可以用具体数组来存储信息。下面是调试好的代码,拷过去运行下#include"stdio.h"#include"stdlib.h"typedef struct stud{int num;char name [20];float score;}STU;STU *s;STU *p;int main(){int i;STU stu[2];//定义一个数组s=stu;//指向这个数组//s=(STU *)malloc(size...
回复

使用道具 举报

千问 | 2011-3-18 20:24:06 | 显示全部楼层
s=(STU *)malloc(sizeof(STU));s的地址是随机得到的,两次s的值是没有任何关系的,而且你在申请了一次后没把第一次的值保存,直接又把该指针又指向了另一个(STU *)malloc(sizeof(STU)),所以你用p根本无法得到s的针。p的值不可控,所以会出现乱码。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行