我有以下C代码
int main (int argc, const char *argv[]){
int counter = 1;
char input[1000000];
while(argv[counter] != NULL){
input[counter] = argv[counter]
}
return 0;
}
从'const char *'中赋值给'char' [-Wint-conversion]
我可以循环并打印argv[counter]的值,所以我很困惑为什么我不能设置一个变量等于它们。
argv
为const string数组,input
为字符数组。因此,您的第一步是通过这样做👉char *input[1000000]
来制作input
字符串数组,最后您必须在将argv
分配给input
之前,通过这样做👉input[counter] = (char *)argv[counter]
来转换const string
。
编辑建议@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;
}