Показано с 1 по 6 из 6
Like Tree1Спасибо
  • 1 Размещено RW4O

Тема: Программирование в Си

  1. #1
    Без позывного
    Регистрация
    16.05.2014
    Возраст
    33
    Сообщений
    2
    Поблагодарили
    0
    Поблагодарил
    1

    Программирование в Си

    Добрый день,

    Подскажите пожалуйста только недавно начали Си изучать и нам дали такое задание: Считать строку любой длины с клавиатуры и переделать ее в массив с динамическим выделением памяти, вот код который я написала, ошибки он не выдает, но я не знаю правильно ли он работает?, и можно ли таким способом выделить память?



    Код:
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv[])
    { 
        char *S;
        int *p, i;
        int t = 20;
       
        
        
        
       printf("Введите предложение");
      
       gets(S); // считываю предложение
      
       p = (char*)malloc(strlen(S)+1);// выделяю память
       
       if(!p) //проверяю есть ли свободная память
       
       printf("Невозможно выделить память");
       
        return 1;
      
       char tab[*p]; //создаю массив
       
       strcpy(tab[i],S); //копирую строку в массив
        
       system("PAUSE"); 
       return 0;
    }


  2. #2
    Very High Power
    Регистрация
    12.05.2012
    Сообщений
    1,533
    Поблагодарили
    578
    Поблагодарил
    1659
    Думаю, что лучшее место для таких вопросов тут
    Цитата Сообщение от Natka Посмотреть сообщение
    return 1;
    Здесь ваша программа закончится в любом случае и с ошибкой
    Цитата Сообщение от Natka Посмотреть сообщение
    strcpy(tab[i],S)
    Что за переменная i ? Чему равно её значение и вообще, зачем она?

  3. #3
    Very High Power
    Регистрация
    12.05.2012
    Сообщений
    1,533
    Поблагодарили
    578
    Поблагодарил
    1659
    Мой вариант
    Код:
    #include <stdio.h>
    #include <stdlib.h>
    #ibclude <string.h>
    
    int main(int argc, char *argv[])
    {
        char *S,*p;
    
        printf("Введите предложение");
        gets(S);                       // считываю предложение
        p = (char*)malloc(strlen(S)+1);// выделение памяти 
        if(!p) {                       //проверяю есть ли свободная память
            printf("Невозможно выделить память");
            return 1;
        }
        strcpy(p,S);              //копирую строку в массив
        printf(p);                //вывод содержимого динамического массива
        free(p);                  //освобождение памяти
        return 0;
    }

  4. #4
    Без позывного
    Регистрация
    16.05.2014
    Возраст
    33
    Сообщений
    2
    Поблагодарили
    0
    Поблагодарил
    1
    Спасибо Вам что ответили, я попыталась скомпилировать Ваш код но компилятор зависает, не пойму в чем проблема

  5. #5
    Модератор
    Регистрация
    18.01.2003
    Адрес
    Кишинёв
    Возраст
    53
    Сообщений
    4,326
    Поблагодарили
    1800
    Поблагодарил
    7998
    Цитата Сообщение от Natka Посмотреть сообщение
    не пойму в чем проблема
    Тут очепятка, но вряд ли от неё -
    Цитата Сообщение от RW4NY Посмотреть сообщение
    #ibclude <string.h>
    Но Борланд бы сразу ругнулся, без зависаний.

  6. #6
    Very High Power
    Регистрация
    12.05.2012
    Сообщений
    1,533
    Поблагодарили
    578
    Поблагодарил
    1659
    Natka
    Каким компилятором польхуетесь?
    Исправленный вариант
    Код:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(int argc, char *argv[])
    {
        char S[256],*p;
    
        printf("Введите предложение\n");
        gets(S);                       // считываю предложение
        p = (char*)malloc(strlen(S)+1);// выделение памяти 
        if(!p) {                       //проверяю есть ли свободная память
            printf("Невозможно выделить память");
            return 1;
        }
        strcpy(p,S);              //копирую строку в массив
        printf(p);                //вывод содержимого динамического массива
        free(p);                  //освобождение памяти
        return 0;
    }

Похожие темы

  1. Программирование GP-300, GM-300
    от R3MW в разделе УКВ: MOTOROLA
    Ответов: 11
    Последнее сообщение: 13.06.2020, 13:54
  2. Программирование Mag One mp-300
    от Гулливер в разделе УКВ: MOTOROLA
    Ответов: 1
    Последнее сообщение: 29.01.2016, 16:23
  3. Программирование P-020
    от stbober в разделе УКВ: MOTOROLA
    Ответов: 1
    Последнее сообщение: 10.05.2014, 16:03
  4. LG ghx 616 программирование
    от schuher в разделе Телефонная, сотовая связь
    Ответов: 32
    Последнее сообщение: 04.12.2008, 09:08
  5. Программирование DJ-180
    от UR6HBV в разделе DJ-180/480
    Ответов: 2
    Последнее сообщение: 18.09.2005, 06:07

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Похоже, что вы используете блокировщик рекламы :(
Форум QRZ.RU существует только за счет рекламы, поэтому мы были бы Вам благодарны если Вы внесете сайт в список исключений!
как отключить
×
Рейтинг@Mail.ru
eXTReMe Tracker


Похоже, что вы используете блокировщик рекламы :(
Форум QRZ.RU существует только за счет рекламы, поэтому мы были бы Вам благодарны если Вы внесете сайт в список исключений!
как отключить
×