我正在做一个项目,我应该存储常量的多维数组。我想用一个指向多维arrays.However的指针来做这件事,但我不能成功。我写了这个代码,但它没有编译。
int darray[1][2];
int darray2[2][3];
int (*p)[1][2];
p= new int[2];
p[0] = darray;
p[1] = darray2;
我有一个多维锯齿字符串数组:
string[,][] MDJA =
{
{new string[]{"a", "b"}, new string[]{"c", "d"}, new string[]{"e", "f"}},
{new string[]{"g", "h"}, new string[]{"j", "i"}, new string[]{"k", "l"}},
{new st
使用以下Java示例:
int[] array1 = new int[]; // Incorrect, since no size is given
int[] array2 = new int[2]; // Correct
int[][][] array3 = new int[][][]; // Incorrect, since no size is given
int[][][] array4 = new int[2][2][2]; // Correct
int[][][] array5 = new int[2][][]; // Correct (why is this correct?)
我知道如何创建一个多维数组状态标准方法:
const int m = 12;
const int y = 3;
int sales[y][n];
我知道如何创建一个指向一维数组的指针:
int * ms = new int[m];
但是有没有可能创建一个指向多维数组的指针呢?
int * sales = new int[y][m]; // doesn't work
int * mSales = new int[m]; // ok
int * ySales = new int[y]; // ok
mSales * ySales = new mSales[y]; //
我正在尝试在c++中创建一个多维数组,其中包含一个字符串和一个整数。我尝试过int test[1][2] = {{"a", 1}, {"b", 2}, {"c", 3}};,但g++给了我以下提示:
example.cpp: In function ‘int getServer(std::string)’:
error: too many initializers for ‘int [1][2]’
error: invalid conversion from ‘const char*’ to ‘int’ [-fpermissive]
我也尝试使用
我尝试从另一个多维数组创建一个新的多维数组。第一个数组如下所示:
array[0][0] = foo
array[0][1] = foo2
...and so on
array[1][0] = 123
array[1][1] = 234
...and so on
array[2][0] = blue
array[2][1] = red
...and so on
array[3][0] = fish
array[3][1] = bird
...and so on
...then I有一个名为'results‘的数组,其中包含数字(例如1,20,23)。我想要做的是创建一个新的多维数组,就
据我所知,堆栈上的多维数组将按行顺序占据连续内存。根据C++标准,使用指向元素的指针对多维数组进行索引是否是未定义的行为?例如:
#include <iostream>
#include <type_traits>
int main() {
int a[5][4]{{1,2,3,4},{},{5,6,7,8}};
constexpr auto sz = sizeof(a) / sizeof(std::remove_all_extents<decltype(a)>::type);
int *p = &a[0][0];
int i = p