Помогите с Memset

  • Автор темы Автор темы Vadik(R)
  • Дата начала Дата начала
V

Vadik(R)

Решаю задачи на динамическое программирование, в общем есть код:
Код:
#include <iostream>

using namespace std;

int main() {
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int i,j,n,a[1000],dp[1000];
cin >> n;
for (i=0; i<n; i++)
cin >> a[i];
memset(dp, 1, sizeof dp);
for (i=1; i<n; i++)
for (j=0; j<i; j++)
if (a[j]<a[i] && dp[j]>=dp[i])
dp[i]=dp[j]+1;
cout << dp[n-1]+1 << endl;
return 0;
}
Так вот, если я мемсетом хочу забить массив единицами, то эта вешь не работает, она заполняет его милиардными числами. На отрицательных числах все работает нормально. Пробовал ещё писать вот так:
Код:
memset(dp, (int) 1, sizeof dp);
memset(dp, int (1), sizeof dp);
Но это все равно не помогло. Как тогда надо написать мемсет, чтобы она ИНТОВСКИЙ массив заполнила единицами?
 
memset заполняет память побайтно, т.е. элементы вашего массива заполняются 16-ричными значениями 0x01010101. При переводе в целое получается 16843009.
Вот есть похожая тема на CodeGuru: http://www.codeguru.com/forum/archive/inde...p/t-246170.html
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab