Мой вопрос: в чем разница между этими двумя?один является пустым, а другой возвращает 2-мерный массив, однако они делают то же самое, но функциональность, кажется, не делает то же самое?я, должно быть, неправильно понимаю указатели здесь.
Я думал, что указатели хранят только адрес, на который можно указать, поэтому, если я передам один в качестве параметра и изменит его содержимое и на то, куда он указывает, не делаю ли ятак же, как переназначение его возвращаемому значению функции.
в конце обеих функций мы печатаем первую строку, они сделали это в обеих.но во время печати скорректированной сетки с помощью функции void в моем Main я получаю ошибку segfault.
char **ft_grid_gen(int size)
{
char **map;
int index;
int elem_index;
int sq_root;
index = 0;
elem_index = 0;
sq_root = ft_sqrt(size * 4);
map = (char**)malloc(sq_root * sizeof(char *));
while (index < sq_root)
{
map[index] = (char*)malloc(sq_root * sizeof(char));
while (elem_index < sq_root)
{
map[index][elem_index] = '.';
elem_index++;
}
index++;
elem_index = 0;
}
printf("GENERATED NEW GRID of size %s!\n", map[0]);
return (map);
}
void ft_grid_gen(char **map, int size)
{
int index;
int elem_index;
int sq_root;
index = 0;
elem_index = 0;
sq_root = ft_sqrt(size * 4);
map = (char**)malloc(sq_root * sizeof(char *));
while (index < sq_root)
{
map[index] = (char*)malloc(sq_root * sizeof(char));
while (elem_index < sq_root)
{
map[index][elem_index] = '.';
elem_index++;
}
index++;
elem_index = 0;
}
printf("GENERATED NEW GRID of size %s!\n", map[0]);
}