[英]How to assign to char from const char *
我有以下 C 代码
int main (int argc, const char *argv[]){
int counter = 1;
char input[1000000];
while(argv[counter] != NULL){
input[counter] = argv[counter]
}
return 0;
}
这将警告不兼容指针指向 integer 转换分配给 'char' 从 'const char *' [-Wint-conversion]
我可以遍历并打印出 argv[counter] 的值,所以我很困惑为什么我不能设置一个等于它们的变量。
argv
是一个常量字符串数组,而input
是一个字符数组。 因此,您的第一步是通过执行此char *input[1000000]
来创建字符串input
数组,最后您必须先转换argv
的每个const string
,然后再通过执行此input
input[counter] = (char *)argv[counter]
。
由@David Ranieri 建议编辑
您可以从argv
中删除const
以避免强制转换。
还
正如@NoDakker 在评论部分所说。 您必须增加counter
以避免无限循环。
解决方案
#include <stdlib.h>
int main (int argc, const char *argv[]){
int counter = 1;
char *input[1000000];
while(argv[counter] != NULL){
input[counter] = (char *)argv[counter];
counter++;
}
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.