尝试realloc int array [closed]时Realloc()错误

bqucvtff  于 2023-06-28  发布在  其他
关注(0)|答案(1)|浏览(110)

**关闭。**此题需要debugging details。目前不接受答复。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答这个问题。
5天前关闭。
Improve this question
我使用这个struct:

typedef struct Command_Line 
{
    char* label;
    char* command_name;
    enum command_enum command_name_enum;
    char* first_argument;
    char* second_argument;
    enum expected_arguments_enum expected_arguments;    
    int ignore;
    int *data_array;
    int arguments_in_data_array;

} Command_Line

这就是宣言:

Command_Line *current_command = malloc(sizeof(Command_Line));

这是(部分)代码:

int current_index = (*current_command).arguments_in_data_array + 1;
(*current_command).data_array = (int*)realloc( (*current_command).data_array, 
(current_index * sizeof(int)));

realloc在current_index = 4时持续崩溃,下一个大小无效。

添加:.data_array初始化如下:

(*current_command).data_array = malloc(sizeof(int));

下面是我如何在数组中输入值:

*((*current_command).data_array + current_index) = atoi(argument_string);
6za6bjd0

6za6bjd01#

所以问题是我输入了最后一个索引+1

相关问题