【发布时间】:2021-04-29 10:57:13
【问题描述】:
这段代码出现分段错误:
#include <iostream>
using namespace std;
int* arrayCreate(int length){
int *ew[length];
for (int i=0; i<length; i++)
{
*(ew[i])=i;
}
return ew[0];
}
int main(){
int *ptr=arrayCreate(7);
cout << *ptr << endl;
}
当我试图改变这一行时
int *ew[length];
进入
int *ew = new int[length];
我有错误
谁能解释一下这两个声明的区别,为什么会出现分段错误以及如何解决?
【问题讨论】:
-
您对指针、地址和值的概念很混乱。你需要一个 C 底漆。