2015-07-22 2 views
-3

пожалуйста, помогите мне с этимКак использовать указатель символа для строки?

я попытался получить строку через символ * и получает() оно не дает никакой компиляции ошибки времени, но он выбрасывает во время выполнения ошибки сегментации ошибок. , но если я даю

char * s = "sample";

оборотный штраф

кто-нибудь может объяснить мне

int main() 
{ 
    char *s,*r; 
    printf("enter\n"); 
    gets("pavithra"); 
    scanf("%s",r); 
    printf("%s",s); 
    printf("%s",r); 
    return 0; 
} 
+1

Прочтите документацию для «gets()». «человек получает» должен рассказать вам все, что вам нужно знать. –

+2

В дополнение к вызову функции gets(), указатели s и r были созданы, но на самом деле не указывают на какую-либо память. Попытка использовать scanf или printf для них является неопределенным поведением и, вероятно, сбой. –

ответ

-1
#include<stdio.h> 
int main() 
{ 
    char *s,*r; 
    printf("enter\n"); 
    gets(s); 
    scanf("%s",r); 
    printf("%s\n",s); 
    printf("%s\n",r); 
    return 0; 
} 

Причина: Вы не можете инициализировать указатель на символ s в получает(), функция получает() принимает строку ввода от пользователя, поэтому s не инициализируется в вашем коде.