c - C函数的正确返回类型?
问题描述
我在这样声明的函数中使用了一个字符串数组
char (*array)[PATH_MAX] = malloc (1000 * sizeof *array);
分配 1000 个大小为PATH_MAX
(1024) 的字符指针。
我希望函数返回那个特定的数据结构,即返回指针array
。但我无法选择正确的返回类型。
warning: returning 'char (*)[1024]' from a function with return type 'int' makes integer from pointer without a cast [-Wint-conversion]
我知道我不能int
作为返回类型,但char**
也不起作用。
warning: returning 'char (*)[1024]' from a function with incompatible return type 'char **' [-Wincompatible-pointer-types]
我试过使用char (*)[1024]
作为返回类型,但它给了我通用的 C 错误消息,让我相信我没有使用正确的语法。
error: expected identifier or '(' before ')' token
38 | char (*)[1024] read_dir (char *path) {
| ^
是否有正确的语法来实现这一点,还是我做错了?
解决方案
您需要按如下方式定义函数:
char (*read_dir(char *path))[PATH_MAX] {
PATH_MAX
这将返回类型指定为指向大小为的数组的指针char *
。
推荐阅读
- javascript - 如何从对象的对象创建对象数组?
- ios - 反应按钮未触发onTouchEnd
- singleton - JSForce:单例或连接或池
- javascript - 同一页面上的多个 jQuery 选项卡
- javascript - 使用带有自定义 TextInput 的反应钩子表单
- python - lda中的主题可视化使用主题关键字的字数和列表索引的错误超出范围?
- ios - IOS图标不显示使用EXPO
- r - 简化 R 中的三角函数
- oracle-sqldeveloper - sql developer-how 使用设置 sqlformat 分隔指令并具有 ANSI 编码输出文件的假脱机
- postman - POSTMAN 错误:未解析的变量:“此变量未在活动集合、环境或全局变量中定义。”