Указатели всегда делали меня пустой о логике, которую я намерен использовать в коде, если кто-то может помочь мне понять несколько концепций, которые были бы действительно полезными. Вот фрагмент кода из моей программы,Указатели на C++ - дилемма новичка
vector <char> st;
char *formatForHtml(string str, string htmlTag)
{
string strBegin;
strBegin = "<";
strBegin.append(htmlTag);
strBegin.append(">");
strBegin.append(str);
string strEnd = "</";
strEnd.append(htmlTag);
strEnd.append(">");
strBegin.append(strEnd);
st.resize(strBegin.size());
for (int i =0;i <strBegin.size();i++) {
st[i] = strBegin.at(i);
}
return &st[0];
}
В коде выше, если я должен вернуться адрес st[0]
, я должен написать функцию типа char *
. Мне нужно знать причину этого, также, если адрес является целым значением, почему я не могу определить функцию как тип int
?
P.S. Это сомнение в уровне начинающих.
Что' ул. '????? –
См. Также этот вопрос [Может ли доступ локальной памяти к внешней области?] (Http://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed вне его сферы) –
@ LuchianGrigore Plz см. edit – vin