Это возвращает ошибку сегментации 11, я не могу понять, что вызывает ошибку.C++ Ошибка сегментации 11
Код не выдает ошибку до тех пор, пока он не попытается вывести Red Blue Green в файл, я не думаю, что индексирование в вектор должно использовать всю оставшуюся память, но я не могу, по-видимому, указать на то, что вызывает ошибку ,
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
const int PIX_SIZE = 40;
const int ESCAPE = 1024;
const char FILEOUTPUT[64] = "juliaOutput";
const char COLORFILE[64] = "juliaColor";
void juliaOutput(){
std::ofstream fout(FILEOUTPUT);
fout << PIX_SIZE << ' ' << PIX_SIZE << ' ' << ESCAPE << std::endl;
double dx = 4./(PIX_SIZE-1);
double dy = 4./(PIX_SIZE-1);
double a =.5;
double b = -.5;
double row;
double col;
int count;
for(row=2; row>=-2; row-=dy){
for(col=-2; col<=2; col+=dx){
count = 0;
double new_x = col;
double new_y = row;
while(((new_x*new_x) + (new_y*new_y) <= 4) && count <= ESCAPE-1){
double old_x = new_x;
double old_y = new_y;
new_x = (old_x*old_x) - (old_y*old_y) + a;
new_y = (2*old_x*old_y) + b;
count++;
}
fout << count << ' ';
}
fout << std::endl;
}
fout.close();
}
void makeColors(std::vector<int> red, std::vector<int> blue, std::vector<int> green){
int i;
for(i =0; i < 1025; i++){
if(i <= 255){
red.push_back(i);
green.push_back(25);
blue.push_back(25);
}
if(i >= 256 && i <= 511){
red.push_back(25);
green.push_back(i-256);
blue.push_back(25);
}
if(i >= 512 && i <= 767){
red.push_back(25);
green.push_back(25);
blue.push_back(i-512);
}
if(i >= 768 && i <= 1023){
red.push_back(100);
green.push_back(i-768);
blue.push_back(100);
}
else{
red.push_back(255);
green.push_back(255);
blue.push_back(255);
}
}
std::cout << "Colors Profiles Created" << std::endl;
}
void assignColors(){
std::vector<int> red;
std::vector<int> green;
std::vector<int> blue;
makeColors(red, green, blue);
std::ifstream fin(FILEOUTPUT);
std::ofstream fout(COLORFILE);
std::string line;
size_t i = 0;
while(std::getline(fin, line)){
if(i > 0){
fout << red[i] << ' ' << green[i] << ' ' << blue[i] << '\n';
i += 1;
}
else{
fout << line << '\n';
i += 1;
}
}
fin.close();
fout.close();
}
int main(){
juliaOutput();
assignColors();
return 0;
}
Сначала используйте отладчик, чтобы пройти и определить, какая строка вашего кода вызывает ошибку. Это твоя часть работы, а не наша. –
Если у вас есть вопрос «как вы отлаживаете ошибку сегментации», нам не нужно видеть ваш код. Если вопрос о вашем коде, в чем вопрос в точности? –
Извините, я новичок в C++. Я никогда не использовал отладчик для C++. – Bytehunter