0

我得到了一个用 C++ 编写的命令行实用程序代码。这段代码有自己的 main() 函数。现在我想在此基础上编写我的程序。所以我声明我自己的 main() 并将实用程序的 main() 函数作为另一个函数,比如说 Test()。

现在 Test() 是:

int Test(_In_ int argc, _In_reads_(argc) PWSTR* argv){
.
.
.
}//doing some work

我想将论点从 main() 传递给 Test()

我的 main() 实现如下:

int main(){
int argc=3;
PWSTR* argval=NULL;
    PWSTR ptr1 = _TEXT("asd");
    PWSTR ptr2 = _TEXT("fzx");
    PWSTR ptr3 = _TEXT("qwe"); 
        argval[0]=ptr1;
    argval[1]=ptr2;
    argval[2]=ptr3;
        Test(argc,argval);
}

当我构建这个项目时,它给出了以下运行时间.. devcon.exe 中 0x00E4999F 处的未处理异常:0xC0000005:访问冲突写入位置 0x00000000。

我怀疑我是否正确分配它..?但我可能错了。

我正在 Windows 7 机器上的 Visual Studio 2012 中构建这个项目。

4

1 回答 1

1

你的指针 argval 没有指向任何东西。您需要为此分配内存。尝试

PWSTR* argval = new PWSTR[3];
于 2013-10-19T06:54:41.643 回答