Почему я получаю ошибку SIGSSEGV .мой код работает правильно на другие среды разработки
Мой код работает правильно на других комплайнерах и ide и дает правильный вывод, но когда я пытаюсь отправить свой код, он показывает ошибку SIGSEGV.
Что вызывает ошибку SIGSEGV и почему она не отображается другими компиляторами?
Что я уже пробовал:
#include <iostream> #include<vector> using namespace std; int main() { int T,i,N,M,Q,j,k,NEW[300][300],X,Y; cin>>T; while(T--) { cin>>N>>M>>Q; for(i=1;i<=N;++i) { for(j=1;j<=M;++j) { NEW[i][j]=0; } } for(i=1;i<=Q;++i) { cin>>X>>Y; for(k=X;k<=X;k++) { for(j=1;j<=M;j++) { NEW[k][j]+=1; } } for(j=Y;j<=Y;j++) { for(k=1;k<=N;k++) { NEW[k][j]+=1; } } } int c; c=0; for(i=1;i<=N;++i) { for(j=1;j<=M;++j) { if(NEW[i][j]%2!=0) { c++; } } } cout<<c<<" \n"; } return 0; }
[no name]
я не опубликовал этот вопрос, так как мне не нужно решение . мне просто нужно знать, почему эта ошибка вызвана и как ее удалить, поскольку она не показана другими компиляторами и ide
Mohibur Rashid
в c/c++ индекс массива начинается с 0, а не с 1 <---- причина, по которой ваше приложение выдает ошибку нарушения доступа к памяти.
у вас нет никакой проверки на значение N и M
KarstenK
на какой ide этот код работает правильно? пожалуйста, ответьте!
[no name]
https://www.onlinegdb.com/online_c++_компилятор
CPallini
Почему вы пишете C-подобный код на C++?