HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

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

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

  #5062  
Старый 31.03.2010, 08:47
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
Познающий
Регистрация: 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
Участник форума
Регистрация: 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
Участник форума
Регистрация: 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
Участник форума
Регистрация: 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
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

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

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

  #5068  
Старый 02.04.2010, 20:31
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
Познавший АНТИЧАТ
Регистрация: 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
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме:
2603363

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

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



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



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


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




ANTICHAT.XYZ