gpt4 book ai didi

c - 待办事项列表,C 语言重新分配

转载 作者:行者123 更新时间:2023-11-30 15:24:47 25 4
gpt4 key购买 nike

我正在做计算 II 的家庭作业。它是在动态创建的字符串数组中创建一个待办事项列表,可以通过多种方式进行操作。需要对其进行操作的方法之一是通过添加任务或通过使用 realloc 添加数组元素。我的代码如下,将运行直到我在不同的函数中调用新重新分配的数组。

void add_task(char **List, int line_num){
char task[1000];

List = (char**)realloc(List, (line_num+1)*sizeof(char));
List[line_num] = malloc((1000) * sizeof(char));

printf("Please enter the string you would like to use as your new task.\n");
scanf("%s",task);
strcat(task,"\n");
strcpy(List[line_num],task);
return;
}

最佳答案

您的realloc()电话错误,您提供的尺寸错误。自 Listchar** ,元素为char* ,不是char .

List = realloc(List, (line_num+1)*sizeof(char*));

sizeof(char*)可能是4 ,您只分配了所需空间的 1/4。然后您在该数组的边界之外进行写入,从而导致未定义的行为。

一般来说,每当您分配给<something>*时与 mallocreallocsizeof 的参数应该是<something> ,即删除最后一个 *从类型。

关于c - 待办事项列表,C 语言重新分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28247036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com