Для задания домашней работы мы должны написать короткую программу, которая сообщает вам количество аргументов, переданных в main, их адрес данных и каждый аргумент, используя argc и argv. Нам также пришлось написать функцию strlen (нам не разрешалось использовать какие-либо подобные функции, включенные в библиотеку), которые вычисляли длину каждого аргумента, переданного в main, с помощью указателей. Моя функция всегда возвращает 0. Извините, что задаю такой основной вопрос, но, будучи учеником первого курса, я еще не обучен использованию отладчика. Вот мой код:Функция strlen всегда возвращается 0
int strlen(char * p)
{
char X[50];
p = &X[0];
int i = 0;
while (*(p + i) != '\0')
i++;
return i;
}
Я пытался несколько различных вещей, чтобы исправить это, но независимо от того, что функция всегда кажется, возвращает значение 0. Есть ли вопиюще огромная проблема я с видом? Любой толчок в правильном направлении был бы полезен, но, пожалуйста, не просто дайте мне ответ.
Вы присваиваете значение '& X [0]' ** to ** 'p' здесь -' p = &X[0]; ' –
", пожалуйста, не просто дайте мне ответ "- попробуйте [Rubber Duck Debugging] (http : //en.wikipedia.org/wiki/Rubber_duck_debugging). Объясните утке, что должен делать 'X'. –
Если у вас нет аргументов в пользу 'char X [50];' и 'p = &X[0];', вы можете просто удалить эти строки. –