如何分配动态数组struct

时间:2016-12-19 22:03:23

标签: c pointers struct

我在分配动态结构数组时遇到问题。 该结构由char *字段组成,这是另一个char的动态数组。在我分配所有数组后,当我尝试修改结构内容时,windows会阻止该程序。代码:

 typedef struct
 {
    char *cod;
 }code;

void create_cod(code *singleCode,int codeLength);
void create_codes(code *codes, int codesNumber, int codeLength);

int main()
{
  int codesNumber=4, codeLength=10;
  code *codes;
  create_codes(codes, codesNumber, codeLength);
  codes->cod = "abcd"; /*Windows block the program here*/
}

void create_cod(code *singleCode,int codeLength)
{
    singleCode->cod = (char*)malloc(codeLength*sizeof(char));
    return;
}

void create_codes(code *codes, int codesNumber, int codeLength)
{
    codes= (code*)malloc(codesNumber*sizeof(code));
    int i=0;
    while(i<codesNumber)
    {
        create_cod(codes+i,codeLength);
        i++;
    }
    return;
}

0 个答案:

没有答案