0

コマンドラインから入力を受け取り、メイン内から定義された文字列の定数 argv-vector を受け取る古い C コードを変更したいと考えています。

実行時例外が発生します

//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 のバグですか?

4

1 に答える 1

9

の要素はav文字列定数へのポインタです。したがって、それらを変更するとアクセス違反が発生します。これは Visual C++ のバグではありません。

于 2012-07-18T16:11:37.383 に答える