C代码中的编译时错误[从函数返回数组指针] #包括 #包括 #包括 #包括 int main() { int i,*ptr; ptr=func(); 对于(i=0;i
,因为您在调用C代码中的编译时错误[从函数返回数组指针] #包括 #包括 #包括 #包括 int main() { int i,*ptr; ptr=func(); 对于(i=0;i,c,pointers,C,Pointers,,因为您在调用func()时没有首先声明它。这会导致编译器假定它将返回int,但随后您将该整数存储在一个指针中,这当然是可疑的 通过将func() 另外,不带参数的函数在C中应该是(void),并且。您还应该检查malloc返回值是否为NULL #include<stdio.h> #include<stdlib.h> #include<math.h> #include<conio.h> int main() { int i, *ptr;
func()
时没有首先声明它。这会导致编译器假定它将返回int
,但随后您将该整数存储在一个指针中,这当然是可疑的
通过将func()
另外,不带参数的函数在C中应该是(void)
,并且。您还应该检查malloc
返回值是否为NULL
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<conio.h>
int main()
{
int i, *ptr;
ptr = func();
for(i=0;i<20;i++)
{
printf("%d", ptr[i]);
}
return 0;
}
int * func()
{
int *pointer;
pointer = (int*)malloc(sizeof(int)*20);
int i;
for(i=0;i<20;i++)
{
pointer[i] = i+1;
}
return pointer;
}
int * func();