ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5061  
Старый 30.03.2010, 20:55
Аватар для qwert135
qwert135
Познающий
Регистрация: 22.11.2009
Сообщений: 53
Провел на форуме:
33126

Репутация: 0
По умолчанию

всем привет.как на С++ реализовать следующее действие: передать одномерный массив,заданный через указатель, из одной функции в другую.спасибо.
 
Ответить с цитированием

  #5062  
Старый 31.03.2010, 08:47
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

что-то типа
Код:
int func1 (int *array) {
...
}

int func2 (...) {
  myvar = func1 (massiv)
}
где massiv - указатель на одномерный массив
 
Ответить с цитированием

  #5063  
Старый 01.04.2010, 20:30
Аватар для SHiNiGaMi
SHiNiGaMi
Познающий
Регистрация: 03.01.2010
Сообщений: 42
Провел на форуме:
162143

Репутация: 3
По умолчанию

rudvil

int CurrentMemory=0;
int *pint = new int;
if ((CurrentMemory +=sizeof(pint)) >= 20480)
{
cout << "память заполнена";
delete pint;
}
else CurrentMemory +=sizeof(*pint);

строго не судите, но возможно так

Последний раз редактировалось SHiNiGaMi; 01.04.2010 в 20:41..
 
Ответить с цитированием

  #5064  
Старый 01.04.2010, 23:46
Аватар для rudvil
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Цитата:
Сообщение от SHiNiGaMi  
rudvil

int CurrentMemory=0;
int *pint = new int;
if ((CurrentMemory +=sizeof(pint)) >= 20480)
{
cout << "память заполнена";
delete pint;
}
else CurrentMemory +=sizeof(*pint);

строго не судите, но возможно так
Спасибо конечно, но я пока-что остановился на этом
Код:
void* operator new (std::size_t size) {
    /*
    тут проверка - не превысется ли лимит... при malloc
    */
    void* mem = std::malloc(size);
    if (!mem)
        ail::fatal_error("\n[ALLOCATING FAILED]\n");
    return mem;
}

void operator delete (void* mem) {
    std::free(mem);
}

void* operator new[] (std::size_t size) {
    /*
    тут проверка - не превысется ли лимит... при malloc
    */
    void* mem = std::malloc(size);
    if (!mem)
        ail::fatal_error("\n[ALLOCATING FAILED]\n");
    return mem;
}

void operator delete[] (void* mem) {
    std::free(mem);
}
т.б. глобально перегрузил операторы.

Последний раз редактировалось rudvil; 01.04.2010 в 23:53..
 
Ответить с цитированием

  #5065  
Старый 02.04.2010, 18:46
Аватар для SeNaP
SeNaP
Участник форума
Регистрация: 07.08.2008
Сообщений: 281
Провел на форуме:
3300342

Репутация: 165
По умолчанию

Начал изучать C++, но возник вопрос при запуске программ под Ubuntu.
В книге приведены примеры для среды Windows.
Код:
#include <cstdio>
#include <cstdlib>
#include<iostream>
using namespace std;
int main(int nNumberofArgs, char* pszArgs[])
{
int celsius;
cout << "Введите температуру в грудасах Цельсия";
...
...
}
Какие нужно директивы подключать?
 
Ответить с цитированием

  #5066  
Старый 02.04.2010, 19:00
Аватар для Ins3t
Ins3t
Участник форума
Регистрация: 18.07.2009
Сообщений: 272
Провел на форуме:
2083691

Репутация: 330
По умолчанию

Никакие, компилируй в линуксе:
Код:
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
//////////////////////////////////////////////////////////////////////////
int main(int nNumberofArgs, char* pszArgs[])
	{
	int celsius;
	cout << "Введите температуру в грудасах Цельсия";
...
...
	}
//////////////////////////////////////////////////////////////////////////
Цитата:
g++ main.cpp -o program

Последний раз редактировалось Ins3t; 05.04.2010 в 20:24..
 
Ответить с цитированием

  #5067  
Старый 02.04.2010, 20:28
Аватар для transserg
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

Репутация: 52
Отправить сообщение для transserg с помощью ICQ
По умолчанию

возник вопрос... если я компилю проект с ключем
Код:
#pragma comment(linker, "/NODEFAULTLIB")
то естественно неработают такие функции как memcpy memcat memmove
чем их заменить и как работать тогда с памятью выделать перемещать копировать?
 
Ответить с цитированием

  #5068  
Старый 02.04.2010, 20:31
Аватар для rudvil
rudvil
Участник форума
Регистрация: 25.08.2008
Сообщений: 187
Провел на форуме:
2066562

Репутация: 86
По умолчанию

Код:
void operator delete (void* mem) {
    std::free(mem);
}
void operator delete[] (void* mem) {
    std::free(mem);
}
Как можно узнать сколько байт в памяти занимает "mem"?
если это вообще реально...

Поясню, при выделении памяти с помощью
Код:
void* operator new (std::size_t size) {
    usedMemory += size;
    void* mem = std::malloc(size);
    if (!mem)
        ail::fatal_error("\n[ALLOCATING FAILED]\n");
    return mem;
}
все просто - мы уже получаем размер выделяемой памяти, собственно хочется так же узнать сколько памяти удаляется при вызове delete или delete[], чтобы уменьшить счетчик используемой памяти...
 
Ответить с цитированием

  #5069  
Старый 03.04.2010, 23:41
Аватар для mailbrush
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

http://forum.antichat.ru/thread193272.html

Последний раз редактировалось mailbrush; 04.04.2010 в 11:50..
 
Ответить с цитированием

  #5070  
Старый 04.04.2010, 21:44
Аватар для Deathdreams
Deathdreams
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме:
2603363

Репутация: 278
Отправить сообщение для Deathdreams с помощью ICQ
По умолчанию

Решил начать изучать C++, как выставить размеры окна при запуске программы ?
По дефолту там большое окно и позиционирование плохое.
Нужно задать свои значения для WIN приложения, гугл не сказал.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ