可能是我遗漏了一些愚蠢的东西,但是,为什么我会收到此警告?
static void foo(char *path) {
char *bname;
char *path2 = strdup(path);
bname = basename(path2);
(带有 basename() 调用的行):警告:赋值从没有转换的整数生成指针
确实,如果我改成这个,警告就会消失:
bname = (char *)basename(path2);
man 3 basename 告诉我:
char *basename(char *path);
Both dirname() and basename() return pointers to null-terminated strings.
什么给了?
最佳答案
否定的。它适合我。您确定包含了正确的 header 吗?
#include <string.h>
#include <libgen.h>
static void foo(char *path) {
char *bname;
char *path2 = strdup(path);
bname = basename(path2);
}
你能告诉我们更多关于你的编译环境吗?
关于c - basename() 返回 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2793285/