gpt4 book ai didi

返回字符串数组时类型冲突

转载 作者:太空宇宙 更新时间:2023-11-04 06:52:13 24 4
gpt4 key购买 nike

我想从 getListOfFiles() 中获取一组文件名(字符串)并在我的 main 中使用它。我已经尝试了我的每一个想法,但仍然出现错误:

gcc testowe.c -o test testowe.c: In function ‘main’:
testowe.c:8:15: warning: implicit declaration of function ‘getListOfFiles’ [-Wimplicit-function-declaration]
char **list = getListOfFiles(argv[1]);

testowe.c:8:15: warning: initialization makes pointer from integer without a cast [-Wint-conversion]

testowe.c: At top level:
testowe.c:11:8: error: conflicting types for ‘getListOfFiles’
char** getListOfFiles(char *path) {

testowe.c:8:15: note: previous implicit declaration of ‘getListOfFiles’ was here
char **list = getListOfFiles(argv[1]);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>

int main(int argc, char *argv[])
{
char **list = getListOfFiles(argv[1]);
}

char** getListOfFiles(char *path) {
int n=0, i=0;
DIR *d;
struct dirent *dir;
d = opendir(path);

while((dir = readdir(d)) != NULL) {
if ( !strcmp(dir->d_name, ".") || !strcmp(dir->d_name, "..") )
{

} else {
n++;
}
}
rewinddir(d);

char **filesList;
filesList = malloc((n + 1)*sizeof(char*));

while((dir = readdir(d)) != NULL) {
if ( !strcmp(dir->d_name, ".") || !strcmp(dir->d_name, "..") ){

}else {
filesList[i] = (char*) malloc (strlen(dir->d_name)+1);
strncpy (filesList[i],dir->d_name, strlen(dir->d_name) );
i++;
}
}
filesList[i] = NULL;
closedir(d);
return filesList;
}

真正的问题是什么,因为我认为所有类型和指针看起来都很好?

最佳答案

阅读警告:函数“getListOfFiles”的隐式声明

您正在使用以前未见过的 getListOfFiles(),因此假定它返回一个 int。您可以通过在定义函数之前声明函数来解决。 char** getListOfFiles(char *path) 靠近文件的顶部,或者对于这种简单的情况,只需将整个定义移到 main()

之前

关于返回字符串数组时类型冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49639732/

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