可能是我想念的傻事,但为什么我会收到这个警告?
static void foo(char *path) {
char *bname;
char *path2 = strdup(path);
bname = basename(path2);
Run Code Online (Sandbox Code Playgroud)
(带有basename()调用的行):warning:赋值从整数中生成没有强制转换的指针
实际上,如果我改变这一点,警告就会消失:
bname = (char *)basename(path2);
Run Code Online (Sandbox Code Playgroud)
man 3 basename告诉我:
char *basename(char *path);
Both dirname() and basename() return pointers to null-terminated strings.
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?
Dac*_*cav 13
负.它适用于我.你确定你包含了正确的标题吗?
#include <string.h>
#include <libgen.h>
static void foo(char *path) {
char *bname;
char *path2 = strdup(path);
bname = basename(path2);
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我们更多关于你编译环境的信息吗?
| 归档时间: |
|
| 查看次数: |
7710 次 |
| 最近记录: |