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 ~ $ Работает, выделяется, освобождается... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.