【发布时间】:2014-08-18 12:59:31
【问题描述】:
我的代码是这样的:
void main(){
char test[] = "aaa";
char* test2 ;
*test2 = * test;
Permutation(test);
system("pause");
}
这段代码可以正常运行。但是当我把它改成:
void main(){
char* test = "aaa";
char* test2 ;
*test2 = * test;
}
vs 2012 报告错误。我实际上知道在“char * []”方式和“char a[]”方式之间删除字符串时的区别。但我不知道这个错误是如何发生的。 有谁能帮帮我吗?
【问题讨论】:
-
这个有数百个重复项。
-
你正在取消引用一个未初始化的指针。
-
两段代码都有未定义的行为。第一个运气不好,不会崩溃,而第二个会崩溃。
-
int main,而不是void main。 -
@simple 谁在乎他是否使用 msvc。一旦他切换平台,他就会很快学会(并不是说重构它是一个巨大的负担)