#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]){
int fir; //badly named loop variable
char *input[] = calloc( strlen(argv), sizeof(char)); //initializing an array
for( fir = 1; fir< strlen(argv); fir++){ //removing the first element of argv
strcat(input, argv[fir]); // appending to input
}
}
Ошибка, которую я получаю, относится к строке 7. В ней говорится: «Передается аргумент 1« strlen »из несовместимого типа указателя». Я получаю ту же ошибку для функции strcat
. В нем также говорится: «Дано char **
, но ожидается const char *
» для обеих функций.
Я пытаюсь заполнить новый массив всеми элементами argv
, кроме первого. Я попробовал argv = &argv[1]
, и это не сработало.
Разве функции strlen()
и strcat()
не принимают массивы char
?
argv[]
, но не выходите за пределы[0..(argc-1]
, когда вы это делаете. - person WhozCraig   schedule 06.09.2013