小编epa*_*dge的帖子

realloc():无效指针已中止(核心转储)

我正在创建一个类似于bash的shell.尝试获取与命令关联的参数(即ls -l)时,我遇到了错误.我在网上搜索过,没有找到任何有用的东西.

char *userInCopy;
char *ret;
userInCopy = (char*)calloc(1024, sizeof(char));
ret = (char*)calloc(64, sizeof(char));
strcpy(userInCopy, userIn);
int i = 0;
while((ret = strsep(&userInCopy, " "))){
    *(args + i) = (char*)calloc(strlen(ret), sizeof(char));
    strcpy((*(args+i)), ret);
    i++;
    ret = (char*) realloc(ret, (64)* sizeof(char));
} 
Run Code Online (Sandbox Code Playgroud)

我从char userIn中获取用户的输入并正确分配.然后我使用strsep单独获取每个参数来解析输入.我可以得到ls参数和-l参数,但是当它在-l之后转到realloc时它会给我"realloc():无效指针"错误.我迷失了为什么这会在获得ls参数后第一次工作但在获得-l参数后失败.有什么建议?

c memory coredump realloc

2
推荐指数
1
解决办法
184
查看次数

标签 统计

c ×1

coredump ×1

memory ×1

realloc ×1