san6 Опубликовано 11 апреля, 2006 Жалоба Опубликовано 11 апреля, 2006 Помогите пожалуйста разобраться, а то я чего то совсем запутался. Суть проблемы: я ввожу число, и в соответствии с ним в программе организуются массивы, с которыми в дальнейшем ведется работа. Пробовал так: #include <stdio.h> #include <termio.h> int twqn, qu, q, *up, *down, *rows, *x; struct termio new, delete; int main(void) { printf("Введите q:\n"); scanf("%d", &q); twqn = q * 2 -1; up = new int[twqn]; down = new int[twqn]; rows = new int[q]; x = new int[q]; ................. delete[] up; delete[] down; delete[] rows; delete[] x; return 0; } и вот так: int main(void) { printf("Введите q:\n"); scanf("%d", &q); twqn = q * 2 -1; qu = q - 1; up = (int *)malloc(twqn *sizeof(int)); down = (int *)malloc(twqn *sizeof(int)); rows = (int *)malloc(queen *sizeof(int)); x = (int *)malloc(queen *sizeof(int)); ................................... free(up); free(down); free(rows); free(x); return 0; } Цитата
Byte Опубликовано 11 апреля, 2006 Жалоба Опубликовано 11 апреля, 2006 задача решается с помощью структур с указателями и строится связный список. поищите в сети что-то типа "динамические структуры дыннх на С" Цитата
Ineu Опубликовано 11 апреля, 2006 Жалоба Опубликовано 11 апреля, 2006 san6 писал(а) Втр, 11 Апреля 2006 10:41 Помогите пожалуйста разобраться, а то я чего то совсем запутался. Суть проблемы: я ввожу число, и в соответствии с ним в программе организуются массивы, с которыми в дальнейшем ведется работа. Пробовал так: ..... То, что Вы написали - это задача, а не проблема. Проблема - это то, что у Вас не получается либо то, чего Вы не понимаете. Так в чем состоит собственно проблема? Цитата
san6 Опубликовано 11 апреля, 2006 Автор Жалоба Опубликовано 11 апреля, 2006 выдает free(): invalid pointer 0x804a008! free(): invalid pointer 0x804a088! в Винде я создавал вот так, и все работало { int *a; int *b; a=new int[40]; b=new int[40]; int j=1; int g=10; for(int k=0;k<40;k++) { a[k]=j; j++; } соответственно потом delete. А в linux просто не могу отыскать синтаксис, как правильно делать Цитата
Ineu Опубликовано 12 апреля, 2006 Жалоба Опубликовано 12 апреля, 2006 es@tbw ~ $ cat > 1.c <<EOF > main() > { > int *x = 0; > x = malloc (1024); > printf ("%X\n", x); > free (x); > return 0; > } > EOF es@tbw ~ $ gcc 1.c 1.c: In function `main': 1.c:4: warning: assignment makes pointer from integer without a cast es@tbw ~ $ ./a.out 804A008 es@tbw ~ $ Работает, выделяется, освобождается... Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.