【发布时间】:2013-07-19 10:22:43
【问题描述】:
我的程序如下
#include<stdio.h>
int *intial(int);
int main (void)
{
int i, *b;
b=intial(5);
for(i=0;i<5;i++)
printf("%d\t",*(b+i));
getch();
}
int *intial(int t)
{
int i, *a;
for(i=0;i<t;i++)
a[i]=i;
return a;
}
但是我得到了垃圾值。
我也试过了
int *intial(int t)
{
int i, a[10];
for(i=0;i<t;i++)
a[i]=i;
return a;
}
但它不起作用。
【问题讨论】:
-
您希望
a在不初始化的情况下指向哪里?指针不是魔术... -
未定义的行为,因为未分配
a。试试int *a = malloc(t * sizeof(int));。在你的程序退出之前记住free(b)。 -
why does this function return garbage value 和 625482976472 类似问题可能重复。
-
Bleeeech ... 那是什么编码风格?随机压痕,奇怪的东西等等......你希望我们如何真正阅读这个?
-
我过去回答过一个类似的问题(不重复):stackoverflow.com/a/8779787/509868