在c中重新分配2d char数组

时间:2014-08-05 14:03:45

标签: c arrays malloc free realloc

我在重新分配数组时遇到问题。我想将输入保存到字符串数组并使用每个新条目重新分配它。  继承我的职责:

char** history=0;

int historycounter=0;

void saveHistory(char* input){

    history=(char**)realloc(history,sizeof(*history)+sizeof(input)*sizeof(char));
    history[historycounter]=(char*)malloc(sizeof(input)*sizeof(char));
    strcpy(history[historycounter],input);
    historycounter++;
}

1 个答案:

答案 0 :(得分:1)

试试这个

void saveHistory(const char *input){
    size_t size = strlen(input)+1;
    history = realloc(history, sizeof(*history)*(historycounter+1));
    history[historycounter] = malloc(size);
    memcpy(history[historycounter], input, size);
    historycounter++;
}