鱼C论坛

 找回密码
 立即注册
查看: 1570|回复: 4

[已解决]请老师指点一下 last偏移 c语言39课动动手课后题第一题

[复制链接]
发表于 2018-7-21 16:29:09 | 显示全部楼层 |阅读模式
10鱼币
本帖最后由 wow7jiao 于 2018-7-21 16:32 编辑

http://bbs.fishc.org/thread-80955-1-5.html
-------------------------------------------
01.#include <stdio.h>

02.#include <stdlib.h>

03.

04.#define INCREMENT 10

05.#define INIT_SIZE INCREMENT

06.

07.int main(void)

08.{

09.        char ch;

10.        char *num; // 存储整个数据的首地址

11.        char *last; // 最近一次迭代的起始地址

12.        int limit = 0; // 每次迭代的限制值

13.        long times = 1; // 记录重新申请多少次内存

14.

15.        num = (char *)malloc(INIT_SIZE);

16.        if (num == NULL)

17.        {

18.                exit(1);

19.        }

20.

21.        last = num;

22.

23.        printf("请输入一个整数:");

24.

25.        while ((ch=getchar()) != '\n')

26.        {

27.                last[limit++] = ch;

28.                if (limit >= INCREMENT)

29.                {

30.                        int offset = last - num;//<---------------------------------源地址减目标地址才有偏移,请问last是什么时候自增加的,上面只有last[limit++](这个不会使last地址自增的,所以offset永远结果是0)

31.                        num = (char *)realloc(num, INIT_SIZE + INCREMENT * times++);

32.                        last = num;

33.                        last += offset;

34.                        last += INCREMENT;

35.                        limit = 0;

36.                }

37.        }

38.        last[limit] = '\0';

39.

40.        printf("你输入的整数是:%s\n", num);

41.

42.        return 0;

43.}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-21 16:29:10 | 显示全部楼层    本楼为最佳答案   
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-21 18:05:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-7-21 18:26:18 | 显示全部楼层
本帖最后由 wow7jiao 于 2018-7-21 18:32 编辑


是循环出来以后再打印的10

last += define 加的10
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-21 18:31:48 | 显示全部楼层
wow7jiao 发表于 2018-7-21 18:26
是循环出来以后再打印的10

^_^

1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-30 02:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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