Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用空值声明和初始化多维数组 #包括 int main(){ 常量字符*组数[2][4][2]={ { {"5", "6"}, {"5.0", "6.0"}, {"5/1", "6/1"}, {"15/3", "-12/-2"}, }, {//number_组[1] {"-98765432109876543210", "98765432109876543210"}, {"-98765432109876543210.0", "98765432109876543210"}, {"-98765432109876543210/1", "98765432109876543210/1"}, NULL//number_组[1][3] } }; printf(“(数字组[1][3]==NULL)=%d\n”,数字组[1][3]==NULL); 返回0; }_C++_Multidimensional Array - Fatal编程技术网

C++ 如何使用空值声明和初始化多维数组 #包括 int main(){ 常量字符*组数[2][4][2]={ { {"5", "6"}, {"5.0", "6.0"}, {"5/1", "6/1"}, {"15/3", "-12/-2"}, }, {//number_组[1] {"-98765432109876543210", "98765432109876543210"}, {"-98765432109876543210.0", "98765432109876543210"}, {"-98765432109876543210/1", "98765432109876543210/1"}, NULL//number_组[1][3] } }; printf(“(数字组[1][3]==NULL)=%d\n”,数字组[1][3]==NULL); 返回0; }

C++ 如何使用空值声明和初始化多维数组 #包括 int main(){ 常量字符*组数[2][4][2]={ { {"5", "6"}, {"5.0", "6.0"}, {"5/1", "6/1"}, {"15/3", "-12/-2"}, }, {//number_组[1] {"-98765432109876543210", "98765432109876543210"}, {"-98765432109876543210.0", "98765432109876543210"}, {"-98765432109876543210/1", "98765432109876543210/1"}, NULL//number_组[1][3] } }; printf(“(数字组[1][3]==NULL)=%d\n”,数字组[1][3]==NULL); 返回0; },c++,multidimensional-array,C++,Multidimensional Array,() 我想创建一个多维数组,其中的元素是c字符串的成对元素。 如果我只是制作一个10个c字符串的数组,我可以用2个c字符串填充它,其他8个指针将是NULLs,但是如果我想制作一个更复杂的数组,就像我在这篇文章顶部发布的那样,我不知道怎么做。 以下是初始化10个c字符串数组和10个数组数组之间的差异示例: #包括 int main(){ 常量字符*数组[10]={/usr/bin/ls',“-l”}; for(无符号整数i=0;i

()

我想创建一个多维数组,其中的元素是c字符串的成对元素。

如果我只是制作一个10个c字符串的数组,我可以用2个c字符串填充它,其他8个指针将是
NULL
s,但是如果我想制作一个更复杂的数组,就像我在这篇文章顶部发布的那样,我不知道怎么做。 以下是初始化10个c字符串数组和10个数组数组之间的差异示例:

#包括
int main(){
常量字符*数组[10]={/usr/bin/ls',“-l”};
for(无符号整数i=0;i<10;++i){
printf(“(数组[%d]==NULL)=%d\n”,i,数组[i]==NULL);
}
常量字符*array2[10][2]={
{“aa”,“bb”},
{“bb”,“cc”}
};
for(无符号整数i=0;i<10;++i){
printf(((array2[%d]==NULL)==%d\n),i,array2[i]==NULL);
}
返回0;
}

()

C样式的数组有点混乱和过时。它们只是将轴映射到数据块的简写

在本例中,您可以看到(至少)有4种方法可以访问c样式数组中的同一元素:

#include <iostream>

using namespace std;

#define X_EXTENT 4

const char* array2[10][X_EXTENT];

int main() 
{
    int y = 5, x = 1;

    array2[y][x] = "hello";
    cout << array2[y][x] << endl;

    cout << *(array2[y] + x) << endl;

    cout << *(*(array2 + y ) + x) << endl;

    cout << *(reinterpret_cast<const char**>(array2) + y * X_EXTENT + x) << endl;

    return 0;
}
#包括
使用名称空间std;
#定义X_范围4
常量字符*array2[10][X_范围];
int main()
{
int y=5,x=1;
array2[y][x]=“你好”;

cout数组确实包含空指针。但您不是在测试存储指针的值,而是在测试子数组的地址。显然,这些子数组不能为空。测试实际指针的值(使用两个下标,而不是一个下标)。你应该完全使用
cstdio
而不是
stdio.h
。这就是现在所有酷孩子都在做的。你建议做的是使用空指针而不是指向char的指针。谁在建议什么?我不是在建议。这个建议根本没有任何意义。“指向char的指针”是一种类型,“空指针”是一个值。我的建议是,不要检查
array2[I]==NULL
,而是检查
array2[I][0]==NULL
array2[I][1]==NULL
。请参阅我在上一篇评论中提供的链接。我想有一种方法来显示数组已结束,其中没有其他元素。我想使用NULL指针来显示,但在这种情况下似乎不可能。因此,您建议使用我的[10][2]数组已完全初始化,为所有20个元素分配了空间,但当我想显示0维中没有10个元素,只有2个元素时,所有其他16个元素都应该为零。1.内存不足2.如果我真的想使用空指针作为合法元素,该怎么办?