Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
#1

new на malloc - C++

28.05.2013, 23:27. Просмотров 369. Ответов 8
Метки нет (Все метки)

Измените выделение памяти на C - malloc,и почему у меня не открывает текстовый файл?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "stdafx.h"
 
#include <string.h>
#include <stdlib.h>
#include <Windows.h>
#include <locale.h>
 
int _tmain()
{
 setlocale (LC_ALL,"Russian");
 
 FILE *fp = fopen ("txt.txt","r");
 
  int i=0,j,k=0;
 
  while (!feof(fp))
  {
 
   i++;
  }
 
  int q = i+1;
  
  char **s=new char *[q] ;
  printf ("Текст в текстовом файле: \n");
        for (i=0; i<q;i++)
             {
                 s[i]=new char[100];
                 fgets(s[i],100,fp);
                 printf ("%c ",s[i]);
             }
 
        int kol = 0;
        int uu=strlen(s[i-1]);
         for (int j=uu;s[i-1][j]!=' ';j--)
             if (s[i-1][j]=='a') 
                kol++;
                    printf ("Колличество букв 'а' в последнем слове: %d \n",kol);
                        
 
    printf ("Хотите выделить слово? (y/n)");
    bool ok;
    char c;
    scanf ("%c", &c);
     //ok = ( c == 'y');
    if (c == 'y'){
 
        HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
 
        printf ("Наше слово: \n");
                 for (int j=uu;s[i-1][j]!=' ';j--)
                    {
                         SetConsoleTextAttribute(hConsole,s[i-1][j]);
                         printf ("%c ",s[i-1][j]);
                    }
            }
    
 
            getchar ();
            getchar();
             return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2013, 23:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос new на malloc (C++):

new vs malloc - C++
Чем new безопаснее(или лучше?) malloc?

new, malloc, - C++
Добрый день. При роботе с дин. памяттю в конец выделяемой памяти добавляеться какойто бред, чтото топа &quot;&lt;&lt;&lt;ЮЮЮээээ&quot;. Почему так...

malloc в С++ - C++
Подскажите пожалуйста как в данной программе выделить динамическую память с помощью malloc для объекта #include &lt;iostream&gt; ...

malloc() - C++
4to takoe malloc(), za4em nam ono nujno? pomogite=)))))))

malloc vs new - C++
Доброго времени суток. Когда я для выделения памяти пользовался malloc/calloc и освобождал с помощью free, у меня вылетала ошибка: ...

Malloc vs new - C++
Здравствуйте. Вникаю в ручное управление памятью. Абзац из книги &quot;C++ для профессионалов&quot; не совпадает с моим представлением...

8
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.05.2013, 23:38 #2
Цитата Сообщение от faLek Посмотреть сообщение
и почему у меня не открывает текстовый файл?
Может потому, что его нет?
0
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
28.05.2013, 23:41  [ТС] #3
нет ,как раз таки есть могли бы исправить на функцию malloc?
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.05.2013, 23:44 #4
Цитата Сообщение от faLek Посмотреть сообщение
нет ,как раз таки есть
Как видите, что не открывается?
0
Croessmah
Эксперт CЭксперт С++
13413 / 7564 / 855
Регистрация: 27.09.2012
Сообщений: 18,617
Записей в блоге: 3
Завершенные тесты: 1
28.05.2013, 23:45 #5
Цитата Сообщение от faLek Посмотреть сообщение
могли бы исправить на функцию malloc?
malloc(элементы*размер_одного_элемента);
C++
1
malloc(100*sizeof(char));
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.05.2013, 23:47 #6
И добавьте
C++
1
#include <stdio.h>
0
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
28.05.2013, 23:51  [ТС] #7
с выделением памяти ясно,почему файл не открывается,в C++ варианте всё раьотает,а на C перевести беда

Добавлено через 1 минуту
вот написаный мой код на C++,вотперевести его на C выходит проблемкой
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include "stdafx.h"
 
#include <string.h>
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <Windows.h>
 
using namespace std;
 
int _tmain()
{
 setlocale (LC_ALL,"Russian");
 
 
 ifstream f("txt.txt");
  int i=0,j,k=0;
 
  while (!f.eof())
  {
   if (f.get()=='\n')
   i++;
  }
 
  int q = i+1;
 
  f.clear();
  f.seekg(0);
 
  
  char **s=new char *[q] ;
  cout<<"Текст в текстовом файле: ";
    cout<<endl;
        for (i=0; i<q;i++)
             {
                 s[i]=new char[100];
                 f.getline(s[i],100);
                 cout<<s[i]<<endl;
             }
 
        int kol = 0;
        int uu=strlen(s[i-1]);
         for (int j=uu;s[i-1][j]!=' ';j--)
             if (s[i-1][j]=='a') 
                kol++;
                    cout<<"Колличество букв 'а' в последнем слове: "<<kol;
                        cout<<endl;
 
    cout<<"Хотите выделить слово? (y/n)";
    bool ok;
    char c;
     cin>>c;
     //ok = ( c == 'y');
    if (c == 'y'){
 
        HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
 
        cout<<"Наше слово: ";
            cout<<endl;
                 for (int j=uu;s[i-1][j]!=' ';j--)
                    {
                         SetConsoleTextAttribute(hConsole,s[i-1][j]);
                         cout<<s[i-1][j];
                    }
            }
    
 
            getchar ();
            getchar();
             return 0;
}
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.05.2013, 23:55 #8
Тут что должно происходить (1 пост)?
C++
1
2
3
4
5
while (!feof(fp))
{
 
   i++;
}
Добавлено через 3 минуты
После подсчёта не забыть сделать:
C++
1
rewind(fp);
0
faLek
99 / 100 / 7
Регистрация: 06.03.2012
Сообщений: 478
29.05.2013, 00:03  [ТС] #9
так что это за функция,что она выполняет?
Вот кусок программы который меня интересует,здесь при выводе,правильно ли я вывоже символьный массив на экран?
C++
1
2
3
4
5
6
for (i=0; i<q;i++)
             {
                 s[i]=new char[100];
                 fgets(s[i],100,fp);
                 printf ("%c ",s[i]);
             }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2013, 00:03
Привет! Вот еще темы с ответами:

New и malloc - C++
Если смотреть на выделение памяти для арифметических типов уступает ли функций new malloc'у в скорости? Если да, то насколько это критично?

Ошибка с malloc - C++
Задание: Написать программу, содержащую процедуры формирования и просмотра списка и подпрограмму проверки наличия в списке заданного...

calloc vs malloc - C++
Объясните,пжлста,чем отличается malloc oт calloc?

Функция Malloc - C++
Помогите изучить функцию Malloc что она делает или дайте учебник где она описана! Начальный курс давно закончил, хорошо разбираюсь в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
29.05.2013, 00:03
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru