title: What is this error? cannot convert 'char**' to 'char*' for argument '1' to 'char* strcpy(char*, const char*)
body: <pre><code>#define NAME_LEN 20 
  #include "stdio.h"
  #include "stdlib.h"
  #include "string.h"
  #pragma warning(disable:4996)
  
  typedef struct bank
  { 
      char *name[NAME_LEN];
      int id; 
      int money; 
      struct bank *next;
  } bank;
  
  bank *head, *tail; // 노드의 처음과 끝
  
  void Init_account(FILE *fp); // 노드의 처음과 끝에 메모리 할당하고, 파일에서 입력을 받도록 하는 함수
  void Make_account(FILE *fp); // 계좌를 생성하는 함수
  void Deposit(FILE *fp); // 입금 함수
  void WithDraw(FILE *fp); // 출금 함수
  void WriteAccount(FILE *fp); // 계좌의 정보를 저장하는 함수
  void Account_inquire(void); // 계좌를 조회하는 함수
  void ReadAccount(int id, char *name, int money); // 텍스트 파일에서 입력을 받는 함수
  
  void Init_account(FILE *fp)
  {
      int id;
      char name[NAME_LEN];
      int money;
  
      head = (bank *)malloc(sizeof(bank));
      tail = (bank *)malloc(sizeof(bank));
      head-&gt;next = tail;
      tail-&gt;next = tail;
  
      while (fscanf(fp, "%d %s %d", &amp;id, name, &amp;money) == 3){ // 정수형, 문자형, 정수형 3개일 때만 입력을 받음
          ReadAccount(id, name, money);
      }
  }
  
  void ReadAccount(int id, char *name, int money)
  {
      bank *t;
      t = (bank *)malloc(sizeof(bank));
      t-&gt;id = id;
      strcpy(t-&gt;name, name);
      t-&gt;money = money; // this code has problem //
      t-&gt;next = head-&gt;next; // 다음 노드를 가리킴
      head-&gt;next = t; // 노드의 처음을 가리킴
  }
  
  void Make_account(FILE *fp)
  {
      int id;
      char name[NAME_LEN];
      int money;
      bank *t;
      t = (bank *)malloc(sizeof(bank));
      printf("\n*********계좌 생성*********\n");
      printf("계좌번호 : "); scanf("%d", &amp;id);
      printf("예 금 주 : "); scanf("%s", name);
      printf("입 금 액 : "); scanf("%d", &amp;money);
      t-&gt;id = id;
      strcpy(t-&gt;name, name);
      t-&gt;money = money;
      t-&gt;next = head-&gt;next;
      head-&gt;next = t;
      WriteAccount(fp); // 저장하는 함수로 파일 포인터를 넘겨줌
  }
  
  void Deposit(FILE *fp)
  {
      int id;
      int money;
      bank *t;
      printf("계좌번호 : "); scanf("%d", &amp;id);
      printf("입 금 액 : "); scanf("%d", &amp;money);
  
      for (t = head-&gt;next; t != tail; t = t-&gt;next)
      {
          if (t-&gt;id == id)
          {
              t-&gt;money += money; // 잔액에 입금할 금액을 더해서
              WriteAccount(fp); // 저장
              return;
          }
      }
      printf("없는 계좌번호입니다.\n");
  }
  
  void WithDraw(FILE *fp)
  {
      int id;
      int money;
      bank *t;
      printf("계좌번호 : "); scanf("%d", &amp;id);
      printf("출 금 액 : "); scanf("%d", &amp;money);
  
      for (t = head-&gt;next; t != tail; t = t-&gt;next)
      {
          if (t-&gt;id == id)
          {
              if (t-&gt;money
              {
                  printf("출금액이 잔액을 초과할 수 없습니다.\n");
                  return;
              }
              else
              {
                  t-&gt;money -= money; // 잔액에서 출금액을 빼서
              }
  
              WriteAccount(fp); // 저장
              return;
          }
      }
  
      printf("없는 계좌번호입니다.\n");
  }
  
  void Account_inquire(void)
  {
      bank *t;
      for (t = head-&gt;next; t != tail; t = t-&gt;next)
      {
          printf("\n*********잔액 조회*********\n");
          printf("계좌번호 : %d\n", t-&gt;id);
          printf("예 금 주 : %s님\n", t-&gt;name);
          printf("잔 액 : %d원\n\n", t-&gt;money);
      }
  }
  
  void WriteAccount(FILE *fp)
  {
      bank *t;
      rewind(fp); // 파일 읽는 포인터 지점을 맨 첨으로 돌리는 함수
  
      for (t = head-&gt;next; t != tail; t = t-&gt;next)
      {
          fprintf(fp, "%d %s %d\n", t-&gt;id, t-&gt;name, t-&gt;money);
      }
  }
  
  int main()
  {
      int input;
      FILE *fp;
      fp = fopen("data.txt", "r+"); // 파일모드가 r+일 경우 읽고쓰기를 동시에 수행 합니다.
      Init_account(fp);
  
      do
      {
          printf("계좌 생성&amp;관리 프로그램입니다. 원하시는 번호를 입력하세요.\n");
          printf("*********************************************\n");
          printf("1)계좌 생성 2)계좌 조회 3)입금 4)출금 5)종료\n");
          printf("*********************************************\n");
          printf("입력 &gt;");
          scanf("%d", &amp;input);
  
          switch (input){
              case 1:
                  Make_account(fp);
                  break;
              case 2:
                  Account_inquire();
                  break;
              case 3:
                  Deposit(fp);
                  break;
              case 4:
                  WithDraw(fp);
                  break;
              case 5:
                  input = 0;
                  free(head); // 종료하면서 메모리 반환
                  free(tail);
                  break;
              default:
                  printf("잘못 입력하셨습니다. \n");
                  return main();
          }
      }
      while (input != 0);
  }
  </code></pre>
  
  <p>I am korean.</p>
  
  <p>And i made "bank manage program code" for my homework.</p>
  
  <p>But thers is problem in my code.(please ignore korea)</p>
  
  <p>When i run my code, the error </p>
  
  <p>cannot convert 'char**' to 'char*' for argument '1' to 'char* strcpy(char*, const char*)'  happened.</p>
  
  <p>I don't know about this problem.</p>
  
  <p>So I add * to that part.</p>
  
  <p>But the problem doesn't solve.</p>
  
  <p>Is there any problem in my code?</p>
  
  <p>Please help me.</p>