gpt4 book ai didi

c - 使用二维寻址一维指针数组

转载 作者:行者123 更新时间:2023-12-02 20:44:00 24 4
gpt4 key购买 nike

我有以下家庭作业问题:

Consider the following declarations and answer the question.
char strarr1[10][32];
char *strarr2[10];

Are strarr1[3][4] and strarr2[3][4] both legal references?

我尝试用 gcc 编译代码来测试它。我相当确定第二个引用会引发错误,但事实并非如此。这是我用 gcc 编译的:

int main(void){
char strarr1[10][32];
char *strarr2[10];

char x = strarr1[3][4];
char y = strarr2[3][4];

return 0;
}

我假设我使用的测试代码是正确的。

当strarr2是一维数组时,如何引用strarr2[3][4]?

最佳答案

由于 strarr2 是 char* 数组,因此第二个 [4] 是 char* 的索引

和这个意思是一样的

char * temp = strarr2[3];
char y = temp[4];

由于我在代码中没有看到 strarr2 被初始化的任何地方,也没有看到 strarr2[3] 被分配的任何地方,因此该代码将无法按所示方式工作。它将返回垃圾或段错误。

关于c - 使用二维寻址一维指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com