标题:大佬看看这个代码错误在哪,调试一直错
只看楼主
Gband
Rank: 1
等 级:新手上路
帖 子:41
专家分:7
注 册:2017-10-13
结帖率:88.89%
 问题点数:0 回复次数:3 
大佬看看这个代码错误在哪,调试一直错



程序代码:
#define _STDC_WANT_LIB_EXT1_1
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define capacity 50
int main(void)
{
    char *p = (char*)malloc(capacity);
    char delimiters[] = " \" ,;:)( ";
    char **temp = NULL;
    char **buf = NULL;
    char *pstr = NULL;
    char *ptr = NULL;
    int num = 0;
    int add = 0;
    int flag = 0;

    printf("请输入一串字符:\n");
    fgets(p, capacity, stdin);
    do{
        if (num == add)
        {
            add += 3;
            temp = (char**)malloc(add);
            for (int i = 0; i < add; i++)
                *(temp + i) = (char*)malloc(capacity);
            if (buf)
            {
                for (int i = 0; i < num; i++)
                    temp[i] = buf[i];
                free(buf);
            }
            buf = temp;
            free(temp);
            temp = NULL;
        }
        if (!flag)
        {
            pstr = strtok_s(p, delimiters, &ptr);
            strcpy_s(*(buf + num++), capacity, pstr);
        }
        else
            strcpy_s(*(buf + num++), capacity, pstr);
        flag = 1;
    } while ((pstr = strtok_s(NULL, delimiters, &ptr)) != NULL);
    for (int i = 0; i < num; i++)
        printf("%s", *(buf + i));
    free(buf);
    buf = NULL;

    free(p);
    p = NULL;
    return 0;
}

搜索更多相关主题的帖子: int char temp NULL num 
2017-11-04 10:43
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
得分:0 
  char delimiters[] = " \" ,;:)( ";

这个是嘛?
2017-11-30 16:20
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
代码做什么的?
2017-11-30 16:47
loboce
Rank: 2
等 级:论坛游民
威 望:1
帖 子:26
专家分:96
注 册:2014-6-7
得分:0 
你重复多次地给temp显式分配内存,多次调用malloc()函数,对同一变量多次分配内存,结果是难以预测的。你干脆一次分配完就好了。你看看add+=3;后面的代码。改进一下就好了。你编程的意图也没人能理解
2018-02-20 14:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-482108-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020458 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved