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

C++빌더 Q&A
C++Builder Programming Q&A
[69295] 왜 에러가나는지 도저히모르겠습니다 ㅠ.ㅠ
유일한나 [uilhan] 1703 읽음    2013-03-28 11:06
//---------------------------------------------------------------------------

#include <vcl.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------

//                                                     

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    Fcount=0;

    a=(AnsiString*)malloc(sizeof(AnsiString)*30);
    b=(AnsiString*)malloc(sizeof(AnsiString)*30);
    c=(AnsiString*)malloc(sizeof(AnsiString)*30);
    d=(AnsiString*)malloc(sizeof(AnsiString)*30);


}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
     for(int i=0;i<30;i++)   // 배열 초기화 (초기화위치중요)
    {                       // a0파일에 저장되는 배열값이 바뀌지않게 버튼을 누를때마다 계속 초기화.
        a[i]=" ";
        b[i]=" ";
        c[i]=" ";
        d[i]=" ";
    }

    Fcount=Fcount+1;

    stream=fopen("a0.xls","w");

    a[0]="출장목적";     // 해당위치에 지정한값 저장
    b[0]="출장자";
    c[0]="부서";
    d[0]="직급";
    a[5]="일비합계";
    b[5]="사용합계";
    c[5]="선불금";
    d[5]="총 청구액";

    for(int i=0;i<30;i++)      // 변수들 순차적으로 돌리기위함. a[0]~a[30] , b[0]~b[30]
       {
           fprintf(stream,"%s\t%s\t%s\t%s\n",a[i],b[i],c[i],d[i]);  // \t 키가 행과 행을 나눠줌
       }

    fclose(stream);




    for(int i=1;i<=Fcount;i++)
    {
        char fname[256];

        if(Fcount==i)  // 먼저 저장된 파일의 값에 영향을 주지 않기위해.
        {
            sprintf(fname, "a%d.xls", i);
            stream=fopen(fname,"w");


            a[1]=Edit1->Text;
            b[1]=Edit2->Text;
            c[1]=Edit3->Text;
            d[1]=Edit4->Text;
            a[6]=Edit5->Text;
            b[6]=Edit6->Text;
            c[6]=Edit7->Text;
            d[6]=Edit8->Text;

        for(int i=0;i<30;i++)
        {
            fprintf(stream,"%s\t%s\t%s\t%s\n",a[i],b[i],c[i],d[i]);
        }

        fclose(stream);

        }
    }




}

//---------------------------------------------------------------------------


void __fastcall TForm1::Button2Click(TObject *Sender)
{
    Edit1->Text="";
    Edit2->Text="";
    Edit3->Text="";
    Edit4->Text="";
    Edit5->Text="";
    Edit6->Text="";
    Edit7->Text="";
    Edit8->Text="";
}
//---------------------------------------------------------------------------

원래 배열을 AnsiString a[30]
이런식으로 정해서 썼는데, 배열값낭비를 막기위해, 추가시키기위해
동적메모리를 쓰려고
AnsiString* a;
a=(AnsiString*)malloc(sizeof(AnsiString)*30);
이런식으로 썼거든요, 이러면 a[0],a[1],a[2]~a[29]까지 만들어지는거자나요,
프로그램돌려봐도 실행은 되요. 근데 Button1Click클릭하면,

for(int i=0;i<30;i++)  
    {                      
        a[i]=" ";
        b[i]=" ";   <- 이부분서부터 에러가나요 ..
        c[i]=" ";
        d[i]=" ";
    }

왜안되는걸까요..?? a[0]~a[29],b[0]~b[29] ...  배열 다만들어졌을텐데...

+ -

관련 글 리스트
69295 왜 에러가나는지 도저히모르겠습니다 ㅠ.ㅠ 유일한나 1703 2013/03/28
69299     Re:왜 에러가나는지 도저히모르겠습니다 ㅠ.ㅠ 아까그놈 1876 2013/03/29
69296     Re:왜 에러가나는지 도저히모르겠습니다 ㅠ.ㅠ Lyn 1771 2013/03/28
69297         Re:Re:왜 에러가나는지 도저히모르겠습니다 ㅠ.ㅠ 유일한나 1794 2013/03/28
69298             Re:Re:Re:왜 에러가나는지 도저히모르겠습니다 ㅠ.ㅠ 땅주인 1864 2013/03/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.