[완료] 2차원 배열 포인터에 대해서 도움좀 부탁드립니다.

vlzkcbcb의 이미지

void gogogo( char *file_name, char (*save_name)[1024], int i )
{
    char buf[256]="";
    FILE *fp;
 
    fp = fopen ( file_name, "r" );
 
    /* 회사이름파일을 열어 부서명(THIS_IS_GROUP 으로 마킹되어있음)저장. */
    while( fgets( buf, 256, fp ) != NULL ){    
        if( strstr( buf, "THIS_IS_GROUP" ) ){
            strcpy( save_name[i], buf);
            i++;
 
            /* 해당 부서안에 하위부서가있는지 부서파일 인자로하여 재귀함수 호출*/
            gogogo(buf, save_name[i], i); 
        }            
    }     
    fclose(fp);      
 
}
 
/* 회사내의 모든 부서명을 저장하는 프로그램 */
/* argv[1] 는 회사이름, AAA는 부서명을 저장할 2차원배열 */
 
int main(int argc, char **argv)
{
    char AAA[256][1024]; //
 
    memset( AAA, 0, sizeof(AAA) );
 
    gogogo( argv[1], AAA, 0 );
 
    return 0;
}

위같이 회사이름을 인자값으로 프로그램을 실행하면

회사이름파일을 열어 안에있는 부서명을 배열에 저장하는 프로그램을 만들어봤습니다.(출력은 생략했습니다)

존재하는 부서라면 파일이 존재하고.

해당 부서도 하위부서를 같을수 있다고 가정하고 만든건데요.

결과적으로는 AAA 라는 2차원배열에 회사내에 존재하는 모든부서(일반부서가 포함하는 하위부서까지)를 저장하는것인데요.

위같이 2차원배열을 인자로주어 함수호출하는것...

호줄된 함수가 2차원배열을 받을때 선언된 것..

재귀함수호출시 전달하는 인자..

등을 맞게 쓴건지좀 알고싶습니다.

도움 부탁드립니다 ㅠㅠ

kgcrom의 이미지

3개를 저장하고 하위부서가 있어서 재귀함수를 호출했는데,
그게 끝나면 다시 i는 3이되어서, 하위부서 저장한게 지워지겠죠?
i를 call by reference 로 호출하면 될것같습니다.
재귀함수에서 호출하실때 save_name+i 이거 말고는 이상한점은 안보여요

도움이되셨으면 좋겠습니다. 항상 건강하세요~~ : )

흘러가고있는 지금 이 시간에 충실하자.

vlzkcbcb의 이미지

카운트 넘길때도 포인터로 넘겨야겠네요

도움 감사드립니다!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.