【发布时间】:2019-09-22 12:40:38
【问题描述】:
#include<iostream>
#include<vector>
using namespace std;
int main(int argc,char** argv){
int n;
if(argc>1)
n=argv[0];
int* stuff=new int[n];
vector<int> v(100000);
delete stuff;
return 0;
}
当我尝试运行此代码 sn-p 时,我收到一个错误invalid conversion from char * to int fpermissive。我不知道这个错误是什么意思。如果有人有任何想法,请帮我找出它的含义。
提前谢谢你。
【问题讨论】:
-
n = argv[0]正在将char *转换为int。标准库中有各种用于将字符串转换为整数值的函数。即使使用这些函数,您的代码也没有意义 -argv[0]将是一个代表程序名称的字符串,因此将其转换为int没有意义。delete stuff也应该是delete [] stuff以避免未定义的行为。