이 나는 대부분의 차이 주위에 내 머리를 가지고있다 생각하지만, 내가 올바른 생각한다면,이 또한 정확해야 :char 배열을 참조하는 것과 char 배열을 동일하게 지정합니까?
1)
char *string1 = (char*) malloc(runtime_determined_number);
2)
char string2val[runtime_determined_number];
char *string2 = &string2val;
여기서 string1과 string2가 같을 것이라고 예상 할 수 있습니다.이 경우입니까?
무슨 의미에서 같습니까? 또한 첫 번째 샘플의 캐스트가 잘못되어 두 번째 불일치의 포인터가 입력됩니다. –
H2CO3 : 포인터 유형 불일치가 없습니다. 이상하지만, '&'는 쓰지 않지만 유효합니다. – Dougall
이것은 'C'질문으로 태그되었습니다. 나는 C가'char string2val [runtime_determined_number]; '와 같은 선언을 허용한다고 믿지 않는다. 런타임에 * compile time * 심볼을 사용할 수 있지만 런타임 변수는 사용할 수 없다. 나는 다른 곳에서 이것이 C89에서 나쁘다는 것을 알았지 만 C99에서는 괜찮습니다. 나는 너무 오래되었다고 생각한다. –