Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2699] Re:다시 소스좀 확인해 주세요.
김진호.불사새 [phenix96] 1194 읽음    2003-05-26 16:02
웁스~~

아래와 같은 방식은 [C++Builder]게시판에 어떤님꼐서 올리신것처럼 VC에서는 되고

정상적인 컴파일러라면 안됩니다. 아주 아주 위험한 코드입니다.

char *s[5];
는 char*형 변수 5개를 잡는다는 것이죠. 이 경우 메모리에는 포인터 변수 5개만 만들어 집니다.

그리고 각 변수 안에는 0이 들어있거나 쓰레기값이 들어있을텐데..

아래 처럼하면  쓰레기값 위치에 문자열을 넣는것과 같습니다. 도스라면야 죽을때까지 돌겠죠

메모리에는 님께서 입력하시는 문자열이 들어갈 어떤 위치도 잡지 않으신거죠.

char *s[5]을 선언후 malloc으로 메모리를 할당 하시거나

char s[5][10]으로 선언후 for,for문으로 i,j를 이용하여 s를 비교하신후 다시 for문을 사용해서 문자열을 교환하세요.

char temp[10];

      for(i=0;i<num1;i++)
       for(j=0;j<num1;j++)
         if(*s[i] < *s[j]) {
           for(int k=0;k<10;k++)
             {
              temp[k]=s[i][k] ;
           s[i][k] = s[j][k] ;   
           s[j][k] = temp[k];
             }   
        }


C하는토끼 님이 쓰신 글 :
: : : #include <stdio.h>
: : : #include <conio.h>
: : :
: : : main()
: : : {
: : :    char *s[5];   //◀ 변경하였슴.
: : :    int i, j,num1;
: : :    char *temp;
: : :    printf("몇문자를 입력하시겠어요=>");scanf("%d",&num1);  
: : :    for(i=0;i<num1;i++) {
: : :    printf("문자열을 입력하세요=>");scanf("%s",s[i]);}  //◀ 문법적 오류는 나지 않는데 Scanf가 한문자열을 받고 오류가 나네요. ㅠㅠ;
:
: : :
: : :    for(i=0;i<num1;i++)
: : :      printf("%s \n", s[i]);
: : :      printf("--------------\n");
: : :
: : :      for(i=0;i<num1;i++)
: : :       for(j=0;j<num1;j++)
: : :         if(*s[i] < *s[j]) {
: : :           temp=s[i] ;
: : :           s[i] = s[j] ;   
: : :           s[j] = temp;    
: : :        }
: : :
: : :
: : :    for(i=0;i<5;i++) printf("%s \n", s[i]);
: : :    getch();
: : : }
: : :
: : :

+ -

관련 글 리스트
2694 정렬안되요 ㅜㅜ help!! C하는토끼 1262 2003/05/26
2696     Re:정렬안되요 ㅜㅜ help!! 김진호.불사새 1163 2003/05/26
2698         다시 소스좀 확인해 주세요. C하는토끼 1187 2003/05/26
2699             Re:다시 소스좀 확인해 주세요. 김진호.불사새 1194 2003/05/26
2706                 감사합니다. ㅜㅜ; 드디어...[냉무] C하는토끼 1282 2003/05/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.