Oczekuję, że oba następujące wektory mają taką samą reprezentację w RAM:C - Różnica między "char var []" i "char * var"?
char a_var[] = "XXX\x00";
char *p_var = "XXX";
Ale dziwne, wywołanie funkcji biblioteki typu f(char argument[])
crushs uruchomionej aplikacji jeśli zgłoszę go za pomocą f(p_var)
. Ale używanie f(a_var)
jest OK!
Dlaczego?
Jak wiem, w ANSI C wszystko można zmodyfikować – psihodelia
Wiesz źle. Standard zabrania modyfikacji literałów łańcuchowych. –
OK, dzięki! Teraz zapamiętam to na zawsze :) – psihodelia