int *p_array = (int *)malloc(sizeof(int)*5000);
как правильно вывести данные, например, с 50 по 5000 символ?
for (int i = 50; i < 5000; ++i)
{
printf("%D", p_array[i]);
}
данный цикл будет выводить с 0 элемента по 5000, а не с 50.
Пример условный, тк задача другая, не просто вывести данные.
стоп, cout если выводить, то некорректно выводит. Если углубиться в задачу, то я считываю данные из файла, делаю преобразования битового потока, но в определенных файлах есть заголовок 38 байт, я хочу пропустить его и сразу смотреть данные, но цикл все равно считывает с 0))
int *p_array = (int *)calloc(100, sizeof(int));
for (int i = 0; i < 100; i++) {
p_array[i] = i;
}
for (int i = 50; i < 100; ++i) {
printf("%d ", p_array[i]);
}
Тимур Покровский, код на работе, суть в том что считываю данные и txt файла(около 250 мб), через fread записываю в буфер uint8_t *p_array = (uint8_t *)calloc(size, sizeof(uint8_t)); где size берется функцию подсчета размера файла(она точно и без ошибок считает верное значение, я проверял), далее я делаю преобразования, и нужно пропустить заголовок файла и далее писать в другой txt, я создаю объект std::ofstream out("test.txt", std::ios::binary);
но записывает не с заданного значения в массиве p_array, а с нуля
Vadim Shorin, Код в вопросе - правильный и выведет с 50 по 5000 элементы.
В вашем рабочем коде какая-то другая ошибка. Может вы где-то память портите, может опечатка банальная. Придется приводить рабочий код. Оставьте только ввод и вывод, можете переименовать переменные, если имена секретные.
Приведенный в примере код не может вывести ничего другого, кроме как массив с 50-го по 5000 элементы. Если задача другая - ну так и приводите конкретный код. Либо не приводите и разбирайтесь сами, gdb Вам в помощь.