2015-06-07 2 views
-1
#include<stdio.h> 

char* output; 
int main() { 
output="Hello"; 
output[0]='r'; // This line shows error . Please assist as to why 
printf(output); 
return 0; 
} 

Пожалуйста, сообщите правильному пути для этого. Я знаю, что это может быть глупым вопросом для большинства людей, но я хотел выполнить такую ​​операцию (строка с комментарием), так что это всего лишь краткий пример проблемы, с которой я столкнулся.Доступ к указателю на символ

Спасибо

+2

Строковые литералы неизменяемы. Используйте 'char output [6];' и 'strcpy' вместо –

+1

НЕОПРЕДЕЛЕННОЕ ПОВЕДЕНИЕ !! –

ответ

0

Когда вы пишете:

output = "Hello"; 

Затем голец указатель output пункты к string. По самой своей природе strings являются неизменяемыми объектами.

+2

** струна ** должен быть ** строка литерал **. –

+0

Спасибо, проблема решена –