Динамический Массив

Тема в разделе "Общие вопросы по С и С++", создана пользователем Wolfises, 12 мар 2011.

  1. Wolfises

    Wolfises Member

    Регистрация:
    5 апр 2009
    Сообщения:
    14
    Симпатии:
    0
    Подскажите как реализовать Динамический массив в С, сел за С первый раз, не могу разобраться(через Microsoft Visual Studio 2005) :)
     
  2. Charley2

    Charley2 Гость

    Код (Text):
    int *a, n, i;
    scanf("%d", &n);
    a = malloc(n*sizeof(int));
    // далее работаем как с массивом, например:
    for (i=0; i <n; i++) {
    a[i]=0;
    } // for
    .............................................
    free(a); // когда станет не нужно
     
  3. Wolfises

    Wolfises Member

    Регистрация:
    5 апр 2009
    Сообщения:
    14
    Симпатии:
    0
    пробовал - ругается на a = malloc(n*sizeof(int));, но у меня там не инт был? а структура, вроде есть что-то типа:

    int *a,i;
    a=new int[10];
    for (i=0;i<10;i++)
    a=0;

    это сегодня нам на лекции объясняли, на которой меня не было; еще не пробовал... но если кто-то знает - может подтвердит или опровергнет это?
     
  4. dreamer

    dreamer Гость

    Потому что типы приводить нужно.

    Лекция по C++, наверно, была? ;)
     
  5. Wolfises

    Wolfises Member

    Регистрация:
    5 апр 2009
    Сообщения:
    14
    Симпатии:
    0
    Смысле приводить типы?? У меня была структура содержащая 3 переменные типа инт и два массива символов - [25] и [20]
    я и писал a=malloc(n*sizeof(struct hok));
    hok - это название структуры;
    или надо было считать сколько все это дело в байтах весит???

    вообще предполагается С, но видимо скорее и то, и то))
     
  6. dreamer

    dreamer Гость

    malloc возвращает указатель на void, а Вам нужен указатель на тот тип данных, массив элементов которого Вы создаёте (т.е. hok*, если я правильно понимаю).

    Насколько я знаю, с VS.NET компиляторов C не идёт вообще (поправьте, если не так), так что лучше уж через new.
     
  7. a0z

    a0z Well-Known Member

    Регистрация:
    15 мар 2011
    Сообщения:
    109
    Симпатии:
    0
    Как-то так:
    struct hok *a=(struct hok *)malloc(n*sizeof(struct hok));

    Есть. Если компилится файл с расширением .c, то будет использоваться С компилятор
     
Загрузка...
Похожие Темы - Динамический Массив
  1. WingmanIX
    Ответов:
    2
    Просмотров:
    1.448
  2. Marazm
    Ответов:
    0
    Просмотров:
    1.292
  3. Ruslan737
    Ответов:
    0
    Просмотров:
    1.106
  4. Ruslan737
    Ответов:
    0
    Просмотров:
    878
  5. Ruslan737
    Ответов:
    0
    Просмотров:
    894

Поделиться этой страницей