c - 警告 : assignment makes integer from pointer without a cast ARGV

标签 c argv

这是我收到的警告。

copyit.c: In function ‘main’:
copyit.c:15: warning: assignment makes integer from pointer without a cast
copyit.c:16: warning: assignment makes integer from pointer without a cast

这对应的代码行是以指针(*)开头的代码行。

char source[128],target[128],buffer[512];

if(argc==3) {
*source = argv[1];
*target = argv[2];
}

我只想分配这两个东西,这样我就可以像那样从命令行传递它们,然后我可以在我的句柄中使用它们(例如:inhandle=open(source,O_RDONLY); 谢谢。

最佳答案

argv 是一个字符串指针数组。您应该只将 sourcetarget 更改为 char *const char * 而不是数组并将代码更改为

source = argv[3];
target = argv[4];

这将使它起作用。如果您将字符串复制到数组中,它还可以防止缓冲区溢出。这也意味着您的应用程序将处理长文件路径。

关于c - 警告 : assignment makes integer from pointer without a cast ARGV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21541044/

相关文章:

c - 使用 scanf 处理多种数据类型

c - 在 realloc 调用中写入无效

c - linux下1ms分辨率定时器推荐方式

main 中的 python 命令行参数,跳过脚本名称

c - 为什么数组名argv可以赋值?

c - 2个int指针之间的指针差异

c - 常规 exp 以验证 C 中的电子邮件

linux - C++ argv 索引大于 argc

c - Strcmp 不比较 argv 中的字符串

python-3.x - python新手,想了解argv语法