问题描述
main()
{
int * ptr;
int * p;
p = ptr;
int i;
ptr = malloc(10);
for(i = 0; i< 10; i ++)
ptr [i ++] = 2;
for(i = 0; i< 10; i ++)
printf("%d \ nn,p [i]);
}
输出是这样的
0
4096
132617
-1075507061
4
12643904
3
100
0
2
main()
{
int *ptr;
int *p;
p=ptr;
int i;
ptr = malloc (10);
for (i =0;i<10;i++)
ptr[i++] = 2;
for (i =0;i<10;i++)
printf("%d\n",p[i]);
}
the output is something like this
0
4096
132617
-1075507061
4
12643904
3
100
0
2
推荐答案
不足为奇。
跟踪变量''i'的值。
-
克里斯。
Unsurprising.
Track the values of the variable ''i''.
--
Chris.
< snip>
这里错了。 ''ptr''通过调用malloc获得一个新值,而''p''仍然
使用它的旧值,即未初始化的值。
- -
我是.signature病毒,请复制/粘贴我帮我传播
全世界。
<snip>
It''s wrong here. ''ptr'' gets a new value via calling malloc while ''p'' still
uses its old one, i.e. an uninitialized value.
--
Hi, I''m a .signature virus, please copy/paste me to help me spread
all over the world.
< snip>
这里错了。 ''ptr''通过调用malloc获得一个新值,而''p''仍然
使用它的旧值,即未初始化的值。
- -
我是.signature病毒,请复制/粘贴我帮我传播
全世界。
<snip>
It''s wrong here. ''ptr'' gets a new value via calling malloc while ''p'' still
uses its old one, i.e. an uninitialized value.
--
Hi, I''m a .signature virus, please copy/paste me to help me spread
all over the world.
我改变了p = ptr的地方。但我仍然错了
回答
#include< stdio.h>
main()
{
int * ptr;
int * p;
int i;
ptr = malloc(10);
p = ptr;
for(i = 0; i< 10; i ++)
ptr [i ++] = 2;
for(i = 0; i< 10; i ++)
printf("%d \ n" ,p [i]);
}
~
~
2
0
2
135153
2
0
2
0
2
0
I have changed the place where p = ptr. But still I am getting wrong
answer
#include<stdio.h>
main()
{
int *ptr;
int *p;
int i;
ptr = malloc (10);
p=ptr;
for (i =0;i<10;i++)
ptr[i++] = 2;
for (i =0;i<10;i++)
printf("%d\n",p[i]);
}
~
~
2
0
2
135153
2
0
2
0
2
0
这篇关于它没有打印正确的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!