#include<iostream.h>
#include<stdlib.h>
using namespace std;
char* Gets(char *s)
{
char ch,*p;
p=s;
while ((ch=getchar()) != '0')
{
*s=ch;
s++;
}
s='\0';
return p; //return the address of S stored in P.
int main(int argc,char* argv[])
{
//char s[200];
char *s;
s=Gets(s);
cout<<"\n After Gets Value of S=["<<s<<"] \n";
return 0;
}
Если я использую char *s
я получаю вывод как ошибки
Сегментация: 11
Если я использую char s[200]
ошибки нет. Почему я получаю ошибку сегментации?
Вам необходимо выделить память в куче Irvin, чтобы удерживать 200 символов. –
'using namespace std;' и 'cout <<" \ n После получения значения S = ["<< s <<"] \ n ";' не является кодом C – chux
Вы действительно хотите закончить строку, когда она читает символ ''0''? – Dmitri