Я ожидаю, что оба следующих вектора имеют одинаковое представление в ОЗУ:
char a_var[] = "XXX\x00";
char *p_var = "XXX";
Но странно, вызов функции библиотеки типа f(char argument[])
разбивает запущенное приложение, если я его вызываю, используя f(p_var)
. Но использование f(a_var)
- это Ok!
Почему?