Я бегу код на сайте кодирования и получил следующие ошибки:Assertion :: таНос
решение: malloc.c: 2369: SysMalloc: Утверждение `(old_top == (((mbinptr) (((полукокса *) & ((av) -> bins [((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) & & old_size == 0) || ((unsigned long) (old_size)> = (unsigned long) ((((__ builtin_offsetof (struct malloc_chunk, fd_nextsize)) + ((2 * (sizeof (size_t))) - 1)) & ~ ((2 * (sizeof (size_t))) - 1))) & & ((old_top) -> размер & 0x1) & & ((неподписанных долго) old_end & pagemask) == 0)»не удалось. Прерванный (ядро сбрасывали)
Код:
#include <stdio.h>
#include <string.h>
#include <math.h>
typedef struct cell
{
int x;
int y;
struct cell *prevcell;
struct cell *nextcell;
}cell;
/* Head ends here */
void nextMove(int x, int y, int pacman_x, int pacman_y, int food_x, int food_y, char grid[x][y]){
//logic here
int i=pacman_x;
int j=pacman_y;
cell *top,*node;
top = NULL;
while(grid[i][j] != '.')
{
node = NULL;
//UP
if(i != 0 && grid[i-1][j] != '%')
{
if(grid[i][j] != 'd')
{
printf("%d %d\n",i,j);
grid[i][j]='d';
}
//push
node = (cell*)malloc(sizeof(node));
node->x=i;
node->y=j;
node->prevcell=top;
node->nextcell=NULL;
if(top != NULL)
top->nextcell=node;
top=node;
i=i-1;
}
//LEFT
else if(j != 0 && grid[i][j-1] != '%')
{
if(grid[i][j] != 'd')
{
printf("%d %d\n",i,j);
grid[i][j]='d';
}
//push
node = (cell*)malloc(sizeof(node));
node->x=i;
node->y=j;
node->prevcell=top;
node->nextcell=NULL;
if(top != NULL)
top->nextcell=node;
top=node;
j=j-1;
}
//RIGHT
else if(j != y-1 && grid[i][j+1] != '%')
{
if(grid[i][j] != 'd')
{
printf("%d %d\n",i,j);
grid[i][j]='d';
}
//push
node = (cell*)malloc(sizeof(node));
node->x=i;
node->y=j;
node->prevcell=top;
node->nextcell=NULL;
if(top != NULL)
top->nextcell=node;
top=node;
j=j+1;
}
//DOWN
else if(i != x-1 && grid[i+1][j] != '%')
{
if(grid[i][j] != 'd')
{
printf("%d %d\n",i,j);
grid[i][j]='d';
}
//push
node = (cell*)malloc(sizeof(node));
node->x=i;
node->y=j;
node->prevcell=top;
node->nextcell=NULL;
if(top != NULL)
top->nextcell=node;
top=node;
i=i+1;
}
else
{
//pop
top=top->prevcell;
free(top->nextcell);
i=top->x;
j=top->y;
}
}
}
/* Tail starts here */
int main() {
int x, y;
int pacman_x, pacman_y;
int food_x, food_y;
scanf("%d %d", &pacman_x, &pacman_y);
scanf("%d %d", &food_x, &food_y);
scanf("%d %d", &x, &y);
char grid[x][y];
for(int i=0; i<x; i++) {
scanf("%s[^\\n]%*c", grid[i]);
}
nextMove(x, y, pacman_x, pacman_y, food_x, food_y, grid);
return 0;
}
Я не получаю эту проблему. Может кто-нибудь помочь?
Привет, спасибо за ваш ответ. Проблема заключается в Hackerrank.com. Они используют следующий компилятор: gcc 4.7.3, режим C99.Работает формат scanf() и распределение сетки. Фактически, все, начиная с комментария «Tail Starts here», добавляется самим сайтом. – user2407394