也许我遗漏了一些愚蠢的东西,但是,为什么我会收到这个警告?
static void foo(char *path) {
char *bname;
char *path2 = strdup(path);
bname = basename(path2);(带有basename()调用的行):警告:赋值使指针从整数开始,而不进行强制转换
实际上,如果我改成这样,警告就会消失:
bname = (char *)basename(path2);man 3基本名称告诉我:
char *basename(char *path);
Both dirname() and basename() return pointers to null-terminated strings.怎么回事?
发布于 2010-05-08 15:40:34
不是。它对我来说是正常的。您确定您包含了正确的标题吗?
#include <string.h>
#include <libgen.h>
static void foo(char *path) {
char *bname;
char *path2 = strdup(path);
bname = basename(path2);
}你能告诉我们更多关于你们的编译环境吗?
https://stackoverflow.com/questions/2793285
复制相似问题