Слово записывается в 0-ую строку и столбец двумерного массива.Когда я иду, чтобы изменить размер массива, чтобы подготовиться к сохранению другого слова, я сохраняю слово в 0-й строке и столбце во временной переменной.После того, как я вызываю функцию, которая увеличивает размер двумерного массива, переменная temp меняется на что-то очень странное.Например, я передал 'i', и после того, как я увеличил размер строк, переменная temp, которая хранила i, изменится.Почему это происходит?
void make_row_decode_structure_bigger(int rows){
printf("inside the making the rows bigger \n");
int max_rows = rows+1;
char **store = realloc( decode_structure, sizeof *decode_structure * (rows + 2) );
printf("after a store has been assigned\n");
if (store){
decode_structure = store;
for(size_t i = 0; i < 2; i++ ){
decode_structure[rows + i] = calloc(20, sizeof(char));
}
}
printf("end of making the rows increase\n");
return;
//decode_structure[max_rows][0] = '\0';
}
//other part of code
char* temp;
strncpy(temp, decode_structure[0], 20);
printf("this word %s is at the top of decode_structure\n", temp);
printf("make the rows bigger is being called\n");
make_row_decode_structure_bigger(num);
printf("temp after make_row_decode_structure_biggeris called %s \n", temp);
это вывод:
это слово, которое я на вершине decode_structure, делает строки больше, вызывается внутри, делая строки больше после магазинабыл назначен конец создания строк, увеличивающий временную температуру после make_row_decode_structure_bigger, называемого Ó «