Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка выделения памяти 
:(
    Опции темы
T0ohtik
Дата 30.4.2008, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 9.2.2008

Репутация: нет
Всего: 1



Есть программа реализующая алгоритм сложения:
Код

#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;
#define max(a, b)  (((a) > (b)) ? (a) : (b)) 

void reverse(int* mas, int nCountBits)
{
    int temp = 0;
    for(int i = 0; i < nCountBits / 2; i++)
    {
        temp = mas[i];
        mas[i] = mas[nCountBits - i - 1];
        mas[nCountBits - i - 1] = temp;
    }
}

void main()
{
    const int N = 5;
    int *A = NULL;
    int *B = NULL;
    int *C = NULL;
    A = (int*)malloc(sizeof(int)*N);
    B = (int*)malloc(sizeof(int)*N);
    C = (int*)malloc(sizeof(int)*max(sizeof(A)/sizeof(int),sizeof(B)/sizeof(int)));
    A[0] = 1;
    A[1] = 8;
    A[2] = 3;
    A[3] = 7;
    A[4] = 5;

    B[0] = 9;
    B[1] = 4;
    B[2] = 7;
    B[3] = 2;
    B[4] = 1;

    reverse(A,N);
    reverse(B,N);

    int CF = 0;

    int nCountBits = N;
    for(int i = 0;i <= nCountBits; i++)
    {
        if(i!=nCountBits)
        {
            int sum = A[i] + B[i] + CF;
            if(sum >= 10)
            {
                C[i] = sum - 10;
                CF = 1;
            }
            else
            {
                C[i] = sum;
                CF = 0;
            }
        }
        else
        {
            C = (int*)realloc(C,sizeof(int)*(N+1));
        }

    }
    for(int i = 0; i< N; i++)
        cout<<C[i];
    cin>>A[0];
}

Не понятны 2 момента. Как определить размер массивов
Код

sizeof(A)/sizeof(int)

возвращает 1, почему?
И почему на строке:
Код

C = (int*)realloc(C,sizeof(int)*(N+1));

Программа вываливается. Если в этом месте поставить точку прерывания и нажать F12.(как это называется?) Появляется окно с надписью Symbol C is not defined.
PM MAIL   Вверх
T0ohtik
Дата 30.4.2008, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 9.2.2008

Репутация: нет
Всего: 1



Все вопрос снимается. Разобрался сам. Вместо sizeof надо было использовать _msize
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.3092 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.