gpt4 book ai didi

c - 如何将 char 数组的值传递给 C 中另一个文件中的函数?

转载 作者:行者123 更新时间:2023-11-30 14:41:37 25 4
gpt4 key购买 nike

我目前正在重写我一直在用 C 编写的解释器。我已经习惯了 C# 等高级语言,所以此时 C 对我来说有点令人困惑。

我编写了一个函数,用于检测当前操作系统并将“WINDOWS”、“LINUX”或“MAC”存储在字符数组中,但我需要将该值传递给另一个文件中的函数。代码如下:

//main.c
#include <stdio.h>
#include "interpreter.h"

#define OS_STR_MAX 8

extern void interpreterInit(char currentOS[]);

int main(int argc, char const *argv[]){
char currentOperatingSystem[OS_STR_MAX];
...
interpreterInit(currentOperatingSystem);

return 0;
}

问题是,当我将值传递给函数时,所有存储的都是 ANSII 字符。我已经搜索了几个小时但找不到解决方案。

//interpreter.h
#include <stdio.h>

void interpreterInit(char currentOS[]){
...
}

任何帮助将不胜感激。

最佳答案

您可以在内存中分配一个字符数组,并与您想要的任何内容共享它的指针。这仅在程序运行时有效。

例如,在 main.c 中你可以这样写:

char * ptr = malloc( array_size * sizeof(char) );

您必须#include <stdlib.h>对于这个功能。这将分配一个 array_size 的数组内存中的人物。 ptr将指向它的开始。

您可以使用 strdup 任何您想要的字符串功能:

ptr = strdup( currentOperatingSystem );

你必须#include <string.h>对于这个功能。然后你可以将我们创建的指针传递给你想要的任何函数。例如:

interpreterInit( ptr );

该函数将接收指针ptr它指向我们想要的字符串。有关动态分配内存和字符串到指针的更多信息,可以查看 this link

关于c - 如何将 char 数组的值传递给 C 中另一个文件中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54854308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com