Я хочу изменить старый код C, который принимает входные данные из командной строки , чтобы взять постоянный вектор argv строк, определенный изнутри main.Преобразование argv в статическую строку или ошибку в Visual C++ 2010
я получаю исключение времени выполнения
//void main(ac,av)
//char *av[];
void main()
{
char *av[]= {"C:\\spice3f5.exe","input.cir","-r","output.txt",0};
char **tv;
tv = av;
tv++;
**tv='-';// "Access violation writing location 0x00708edc."
(*tv)[0] = '-';//Same runtime exception
}
Это просто не должно было случиться ... Является ли это ошибка в Visual C++ 2010?
@ Ответы timrau в точности верны. Строковые литералы, заключенные в '' ', являются постоянными и хранятся в зависимом от платформы статическом хранилище только для чтения. – Linuxios