Количество символов в масивах двумерного массива
Я хочу посчитать количество символов в масивах двумерного массива, но у меня получается ошибка, что я делаю не так? Как это сделать без никаких библиотек?
int return_length(char **argv)
{
int i;
int j;
int k;
i = 0;
j = 0;
k = 0;
while (argv[i][0])
{
j = 0;
while (argv[i][j])
{
k++;
j++;
}
i++;
}
return (k);
}
int main()
{
char **argv;
char man[7] = "123";
char man1[20] = "456";
char man2[20] = "123";
char man3[20] = "123";
argv = (char**)malloc(sizeof(char*) * 4);
argv[0] = man;
argv[1] = man1;
argv[2] = man2;
argv[3] = man3;
int n = return_length(argv);
printf("%d\n", n);
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
Вот два варианта. Первый - с указателем-ограничителем, второй - с указанием числа строк.
int return_length1(char** argv) {
int len = 0;
for (int i = 0; argv[i]; ++i)
for (int j = 0; argv[i][j]; ++j, ++len);
return len;
}
int return_length2(char** argv, int size) {
int len = 0;
for (int i = 0; i < size; ++i)
for (int j = 0; argv[i][j]; ++j, ++len);
return len;
}
int main() {
char** argv;
char man[7] = "123";
char man1[20] = "456";
char man2[20] = "123";
char man3[20] = "123";
argv = (char**)malloc(sizeof(char*) * 5);
argv[0] = man;
argv[1] = man1;
argv[2] = man2;
argv[3] = man3;
argv[4] = NULL;
int n = return_length1(argv);
printf("%d\n", n);
n = return_length2(argv, 4);
printf("%d\n", n);
}