gpt4 book ai didi

c - 不明白C中的内存冲浪

转载 作者:行者123 更新时间:2023-11-30 20:53:06 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <stdlib.h>
#include <array.h>

int col, str;
int *point;

void setArr()
{
printf("Input columns="); scanf("%d", &col);
printf("Input strings="); scanf("%d", &str);
int num[str][col];
for(int i = 0; i < str; ++i)
{
for(int j = 0; j < col; ++j)
{
scanf("%d", &num[i][j];
}
}
point = num;
}

int main(void)
{
setArr();
printf("First=%d\n", *point);
printf("Number=%d", *point);
}

输出:

Input columns=2
Input strings=2
1
2
3
4
First=1
Number=1740639104

这里我们有 C 代码,必须使用指针从数组中获取准确的数字,但在多次尝试中,我明白有些东西我不理解或只是不知道。所以存在一个问题(或者它有像这样),即我引用指针,它两次指向第一个元素,并且在每种情况下得到不同的结果。为什么会发生这种情况以及我可以通过什么方式解决它?感谢大家。

最佳答案

point = num;

您正在将point设置为函数局部变量的地址。所有进一步的访问都将是未定义的行为。

关于c - 不明白C中的内存冲浪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53199080/

25 4 0
文章推荐: c# - 当 YAML 文档的字段类型不正确时,YamlDotNet 反序列化抛出异常
文章推荐: javascript - 使用 material-ui 时出现 proptypes 错误
文章推荐: c# - 用于获取分组表中具有最大日期的行的 LINQ 查询
文章推荐: javascript - 如何使用 JavaScript 在可编辑的
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com