相关疑难解决方法(0)

将2D数组传递给C++函数

我有一个函数,我想作为一个参数,一个可变大小的2D数组.

到目前为止我有这个:

void myFunction(double** myArray){
     myArray[x][y] = 5;
     etc...
}
Run Code Online (Sandbox Code Playgroud)

我在代码中的其他地方声明了一个数组:

double anArray[10][10];
Run Code Online (Sandbox Code Playgroud)

但是,调用myFunction(anArray)给了我一个错误.

当我传入数组时,我不想复制数组.所做的任何更改都myFunction应该改变数据的状态anArray.如果我理解正确,我只想作为参数传入指向2D数组的指针.该函数还需要接受不同大小的数组.例如,[10][10][5][5].我怎样才能做到这一点?

c++ arrays pointers multidimensional-array

294
推荐指数
10
解决办法
59万
查看次数

C++字符串:[] vs.*

一直在想,用[]或*声明变量之间的区别是什么?我看待它的方式:

char *str = new char[100];
char str2[] = "Hi world!";
Run Code Online (Sandbox Code Playgroud)

..应该是主要的区别,虽然我不确定你是否可以做类似的事情

char *str = "Hi all";
Run Code Online (Sandbox Code Playgroud)

..因为指针应该引用一个静态成员,我不知道它是否可以?

无论如何,真正困扰我的是知道以下两者之间的区别:

void upperCaseString(char *_str) {};
void upperCaseString(char _str[]) {};
Run Code Online (Sandbox Code Playgroud)

所以,如果有人能告诉我差异,我将不胜感激吗?我有一种预感,除了一些特殊情况外,两者都可以编译得相同吗?

c++ syntax pointers reference

18
推荐指数
2
解决办法
3922
查看次数