gpt4 book ai didi

c - int *p; 有什么问题? *p=23;

转载 作者:太空狗 更新时间:2023-10-29 16:32:53 25 4
gpt4 key购买 nike

昨天在我的采访中有人问我这个问题。 (当时被这么多突如其来的问题压力很大)。

int *p;
*p=23;
printf("%d",*p);

这段代码有什么问题吗?

我向他解释说您正在尝试为未分配内存的指针赋值。

但他的 react 方式,好像我错了。虽然我得到了这份工作,但在那之后他说莫希特再考虑一下这个问题。我不知道他想表达什么。请让我知道我的回答有什么问题吗?

编辑我在工作表上添加了代码;-

int *p;
p=malloc(sizeof(int));
*p=23;
printf("%d",*p);

这一定是完美的代码...我说得对吗...

EDIT2

int *p;
*p=23;
OR
int *p=23;

我觉得两者都有问题。因为有人在谈论帖子的标题。

最佳答案

“试图给一个没有分配内存的指针赋值”

我认为您只是用词不当。您不是要为指针赋值,而是要为指针的引用数赋值。

由于指针未初始化,正如您所说,这是未定义的行为。指针不指向任何东西(至少无效 - 正如其他答案所指出的那样, p 的存储位可能恰好包含一个值,该值是某个内存位置的地址,并且您的代码可能会覆盖它。该标准允许 UB 发生任何事情,但了解您的实现情况后,您通常可以做出精明的猜测)。

因此,面试官可能认为您的想法是正确的,但在您的脑海中和您的演讲中,将手指和月亮之间的区别是什么,以及您在谈论的是哪个,这很有值(value)。

关于c - int *p; 有什么问题? *p=23;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2538152/

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