대 포인터? string1
이 맞나요? 이 스레드 What is the type of string literals in C and C++? 뭔가 다른 말하기 때문에.문자열 리터럴 :</p> <pre><code>char *a = "string1" </code></pre> <p>정확히 문자열 리터럴 무엇입니까 :이 문장에서 char 배열
내 지식까지
int main()
{
char *a = "string1"; //is a string- literals allocated memory in read-only section.
char b[] = "string2"; //is a array char where memory will be allocated in stack.
a[0] = 'X'; //Not allowed. It is an undefined Behaviour. For me, it Seg Faults.
b[0] = 'Y'; //Valid.
return 0;
}
는 상기 이외의 몇 가지 세부 사항을 언급 추가하십시오. 감사. 당신은 "큰 따옴표로 둘러싸인 문자의 순서"같은 리터럴 문자열을 볼 수a[0] = 'Y';
Reading symbols from /home/jay/Desktop/MI/chararr/a.out...done.
(gdb) b main
Breakpoint 1 at 0x40056c: file ddd.c, line 4.
(gdb) r
Starting program: /home/jay/Desktop/MI/chararr/a.out
Breakpoint 1, main() at ddd.c:4
4 {
(gdb) n
6 char *a = "string1";
(gdb) n
7 char b[] = "string2";
(gdb)
9 a[0] = 'Y';
(gdb)
Program received signal SIGSEGV, Segmentation fault.
0x0000000000400595 in main() at ddd.c:9
@elyashiv에서의 모습, 코드가 불법 되세요. – hmjd
정확한 질문이 무엇인지 확신 할 수 없습니다. 문자열 리터럴에 대한 자세한 내용은 C99 표준의 6.4.5 절을 참조하십시오. – hmjd
아마 [이 stackoverflow 질문] (http://stackoverflow.com/questions/2589949/c-string-literals-where-do-the-go) 도움이 될 수도 있습니다, 또는 [이 하나] (http://stackoverflow.com/questions/2245664/string-literals-in-c). – Richard