следующее не компилируется:C++ int main (int argc, char * argv []) - массив argv a c?
int main (int argc, char *argv[]) {
char arr[2][2];
char **ptr = arr;
return 0;
}
Но следующее делает:
int main (int argc, char *argv[]) {
char **ptr = argv;
return 0;
}
Таким образом, я хотел бы сделать вывод, что ARGV не массив переменного стиля, который хранится в виде отдельного блока памяти, а скорее какой-то массив указателей. Может ли кто-нибудь подтвердить это?
Спасибо и с уважением.
Если 'argv' был массивом массивов, тогда размер внутренних массивов будет частью типа (и все они должны быть одного размера). –
'arr' распадается на указатель на массивы с типом' char (*) [2] ', который не совпадает с указателем на указатели с типом' char ** '. – aschepler