V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
desperadoo
V2EX  ›  OpenAI

最近感觉 ChatGPT 经常出错,就连最拿手的代码也有问题,十分误导人

  •  
  •   desperadoo · 81 天前 · 861 次点击
    这是一个创建于 81 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近 GPT-4 给人的回复特别奇怪,有时候牛头不对马嘴,有时候出现错别字,甚至连比较擅长的代码也出错了,各位帮忙看看,它是不是出智障问题了。

    我想让它用 C 语言实现 shell 中 mkdir- p 效果的代码,它的回复如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <sys/stat.h>
    #include <errno.h>
    #include <unistd.h>
    
    // 创建目录,如果需要则递归创建父目录
    int mkdir_p(const char *path) {
        char *copypath = strdup(path);
        char *sp;  // 用于 strtok_r 的保存指针
        char *p = NULL;
        int status = 0;
    
        errno = 0;
    
        // strtok_r 需要一个可修改的字符串
        for (p = strtok_r(copypath, "/", &sp); p != NULL; p = strtok_r(NULL, "/", &sp)) {
            // 在每一个中间步骤上,逐步构建路径
            if (p == copypath) { // 特殊处理以斜杠开头的路径
                continue;
            }
    
            // 逐层路径累加
            *(p + (p - copypath) + strlen(p)) = '\0';
    
            // 检查目录是否存在
            struct stat st;
            if (stat(copypath, &st) != 0) {
                // 目录不存在,创建之
                if (mkdir(copypath, 0777) != 0 && errno != EEXIST) {
                    status = -1;
                    break;
                }
            } else if (!S_ISDIR(st.st_mode)) {
                // 不是目录,抛出错误
                status = -1;
                break;
            }
    
            *(p + (p - copypath) + strlen(p)) = '/';  // 恢复 '/'
        }
    
        free(copypath);
        return status;
    }
    
    int main(int argc, char *argv[]) {
        if (argc < 2) {
            fprintf(stderr, "Usage: %s <path>\n", argv[0]);
            exit(EXIT_FAILURE);
        }
    
        if (mkdir_p(argv[1]) != 0) {
            perror("mkdir_p failed");
            exit(EXIT_FAILURE);
        }
    
        printf("Directories created successfully\n");
        return 0;
    }
    

    其中的 *(p + (p - copypath) + strlen(p)) = '\0'; 应该是有问题,甚至会造成数组越界吧。

    V 友们看看是它变智障了,还是我加班加傻了。

    4 条回复    2024-06-19 12:21:34 +08:00
    YongXMan
        1
    YongXMan  
       81 天前
    试试 claude3
    wencan
        2
    wencan  
       80 天前
    代码出错不是很正常吗?
    desperadoo
        3
    desperadoo  
    OP
       80 天前
    @wencan 以往很稳定,最近频频出错。
    wencan
        4
    wencan  
       80 天前
    最近我都不能访问 chatgpt ,lz 是如何做到的?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2049 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:31 · PVG 09:31 · LAX 18:31 · JFK 21:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.