2016-08-18 2 views
0

터보 C에서이 코드를 실행하려고 시도했는데 9 호선에서 초기화가 잘못되었습니다. 내가 뭘 잘못 했습니까 ???C 프로그램에서 잘못된 초기화

#include<stdio.h> 
#include<conio.h> 

void main() 
{ 

int names[] = {23,23,34}; 

int *nam[] = { names, names+1 , names +2}; 

char *temp; 

clrscr(); 


printf("%u" , (nam)); 

getch(); 
} 
+1

나중에 C99 컴파일러를 사용하십시오. – BLUEPIXY

+3

TurboC는 * 고대 *입니다. 가능한 경우 사용하지 마십시오. 그리고 거기에는 많은 무료 C 컴파일러가 있기 때문에 현대 표준에 따라 최신 버전이 될 수 있습니다. 또한 기존의 TurboC보다 뛰어난 무료 환경이 많이 있습니다. –

+0

귀하의 문제에 관해서는 터보 C의 초기화가 유효하기 때문에 아마도 터보 C의 특이한 점일 것입니다. 여러분의 프로그램에는 유효하지 않은 다른 것들이 있는데, *** 포인터를 잘못된 형식을 사용하는'nam'의 첫 번째 요소에 인쇄하는 것과 같습니다. –

답변

3

컴파일러가 절대로 구식이기 때문에이 문제가 발생합니다. 17 년 전에 철회 된 오래된 C 표준에서는 컴파일 타임 상수를 제외한 배열을 초기화 할 수 없었습니다.

1999 년에 이와 같은 많은 결함을 수정 한 새로운 C 표준이있었습니다. 이 코드를 컴파일하려면 언어의 "C99"업데이트를 지원하는 컴파일러가 필요합니다.

관련 문제