gpt4 book ai didi

c - 如何使用 Fake Function Framework (FFF) 伪造一个采用 2D 数组作为输入的 C 函数?

转载 作者:行者123 更新时间:2023-11-30 14:36:22 40 4
gpt4 key购买 nike

我无法弄清楚如何在 FFF 中正确设置宏来伪造一个采用字符串数组的函数。尝试传递 2D 数组似乎是非法的,所以我创建了一个 typedef 来尝试解决这个问题。

/*Macro for faking the function*/
#define getFilesInDir fake_getFilesInDir
FAKE_VOID_FUNC7(fake_getFilesInDir, char*, FileNames, uint16_t, char*, char*,
int32_t*, uint8_t)

#define MAX_FILENAME_SIZE 400
typedef char FileNames[][MAX_FILENAME_SIZE];

/*Declaration in another header file*/
void getFilesInDir(char* dir, FileNames filesInDir, uint16_t maxNumFiles, char* includeString,
char* excludeString, int32_t* fileCnt, uint8_t recursive);


/*Code under test*/
char fileNames[CFU_MAX_NUM_FILES][MAX_FILENAME_SIZE]; //Local variable
//...
getFilesInDir(path, fileNames, CFU_MAX_NUM_FILES, (char*)cfgExt, NULL, &fileCount, false);

这段代码给了我两个错误。 arg1_history:缺少下标struct fake_getFilesInDir_Fake具有非法的零大小数组

知道我做错了什么吗?

最佳答案

我明白了。二维数组的正确 typedef 是:

typedef char (*FileNames)[MAX_FILENAME_SIZE];

关于c - 如何使用 Fake Function Framework (FFF) 伪造一个采用 2D 数组作为输入的 C 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58103085/

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