C 从函数返回中获取变量值的变量

C 从函数返回中获取变量值的变量,c,C,我有一个函数,可以更精确地读取文件的第一行内容,测量它找到的内容的长度并返回它。最初函数打印它读取的内容,但我将其修改为“返回缓冲区” 以下是我的功能: char *get_process() { int len = 0; FILE *fp; char c; char *buffer = NULL; fp = fopen("input.txt", "r"); if (fp == NULL) { return 1;

我有一个函数,可以更精确地读取文件的第一行内容,测量它找到的内容的长度并返回它。最初函数打印它读取的内容,但我将其修改为“返回缓冲区”

以下是我的功能:

char *get_process() {
    int len = 0;
    FILE *fp;
    char c;
    char *buffer = NULL;
    fp = fopen("input.txt", "r");
        if (fp == NULL) {
            return 1;
        }
        while((c = fgetc(fp)) != EOF) {
            if (c == '\n') {
                break;
            }
            len++;
    buffer = (char *) malloc(sizeof(char) * len);
    fseek(fp, 0, SEEK_SET);
    fread(buffer, sizeof(char), len, fp);
    fclose(fp);
    return buffer;
}

input.txt的内容类似于/etc/config.conf

现在我的问题是,我要做的是将这个函数返回的内容赋给我在main()函数中使用的变量

我所做的我已经添加到我的主要功能中:

char*PID=get_进程()

但我在编译时有以下错误: :760:警告:return从整数生成指针而不进行强制转换

我总是做错事。
但是它是什么?

如果您的
fp==NULL
那么您的函数将
返回1。这就是为什么你会收到这个警告。相反,您可以
返回NULL
返回null ptr表示出现了问题

[编辑]
如果你在代码中添加的代码和你在程序中所写的完全一样,那么你还有一个问题,因为你的while循环关闭支架没有被放置在

C或C++中?你不能用两种语言编程,请选择你实际正在编写的程序。很可能你没有在主函数(可以通过头文件)之前声明某处的签名“代码> GETX进程/CODE”。请阅读所应用的标记的描述,C和C++是互斥的。另外,作为这里的新用户,请阅读。也就是说,请将代码减少为a。
返回1嗯。。。。函数返回值的有趣选择,该函数承诺返回类型为
char*
NULL
有什么问题吗?你不应该发布全部代码。您需要将相关部分提取到中,该部分的唯一目的是用作示例。修复了return NULL,但现在在函数“get_process”中出现了一个新的错误弹出窗口:::4854:在input@JerichoST我想那是因为你忘记了关闭},而我在get_进程函数的末尾缺少了一个}。谢谢大家抽出时间。@JerichoST Noproblem@JerichoST如果我的答案被接受,请选择接受)