Я хочу ввести две строки в разных ячейках памяти, но после ввода первого ввода отобразится сообщение об ошибке «segmentation fault (core dumped)». Я не понимаю, что не так с этим кодом.Почему он дает ошибку "segmentation fault"?
#include <stdio.h>
#include<iostream>
using namespace std;
int main()
{
char *str;
int i;
scanf("%s",str+0);
scanf("%s",str+1);
return 0;
}
Но когда я беру только один вход, он отлично работает.
#include <stdio.h>
#include<iostream>
using namespace std;
int main()
{
char *str;
int i;
scanf("%s",str+0);
return 0;
}
Почему?
Почему у вас '#include' и 'using namespace std;'? Они используются в C++, а не C. –
«* Но когда я беру только один вход, он отлично работает. *« Оба кода демонстрируют неопределенное поведение. И UB означает, что все может случиться. Это может сработать, не может, или сделать что-то еще. Избегайте UB любой ценой. Не полагайтесь на это поведение. –
Можете ли вы также показать свой ввод. –