решил поучить C, есть такая программа
#include <stdio.h>
#include <string.h>
int main(){
char s[5];
printf(«len of %s %d\n»,s,strlen(s));
return 0;
}
функция strlen считает символы пока не наткнется на '\0', так как массив символов я не инициализирую, то там мусор, и функция выйдет за его границы, вопрос, почему при каждом запуске программы, в качестве строки s выводится мусор, в качестве длины всегда 34(как выяснилось зависит от объявленной длины массива), а если объявить масив с >40 символов, не инициализируя строку длина = 0, и строка пуста, если меньше 40 символов, то в строке мусор. Ктонить может объяснить это?
Ответ на:
комментарий
от namezys
Ответ на:
комментарий
от swelf
Ответ на:
комментарий
от Legioner
Ответ на:
комментарий
от k0l0b0k
Ответ на:
Только в языка типа Си
от wfrr
Ответ на:
Только в языка типа Си
от wfrr
Ответ на:
комментарий
от swelf
Ответ на:
комментарий
от k0l0b0k
Ответ на:
комментарий
от swelf
Ответ на:
комментарий
от Sphinx
Ответ на:
комментарий
от gamecoder
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум scanf(«%s»,char*) Что-то не так :( (2011)
- Форум Работа со строками (2004)
- Форум покритикуйте функцию (2009)
- Форум Segmentation fault (2003)
- Форум кто виноват? (gcc stdio string) (2006)
- Форум C, Странная проблема с указателями в функции (2008)
- Форум Знатокам стандарта Си (2019)
- Форум K&R Задача 1.16 (2015)
- Форум математика (2005)
- Форум [c, K&R] По какому событию должен выводится результат? (2010)