int*func();
int main()
{
int i;
int *ptr;
ptr=func();
for(i=0;i<10;i++)
{
printf("%d ",*ptr);
ptr++;
}
}
int* func()
{
int arr[10];
int i;
for(i=0;i<10;i++)
arr[i]=i+1;
return arr;
}
Почему я не получаю свою продукцию как 1,2,3,4,5,6,7,8,9,10 ??Почему я не получаю правильный выход?
Я возвращаю адрес массива из func(), но Я все еще получаю ненужные значения.
Я считаю, что агрессивный вниз голосования, вероятно, связано с тем, что существует множество повторяющихся вопросов на эту тему уже, так что ОП предположительно не сделал каких-либо исследований до начала размещения. –
кроме malloc can not я использую что-нибудь еще ?? – CodeHacker
Да, измените 'int arr [10];' на 'static int arr [10];', [посмотреть] (http://stackoverflow.com/q/572547/1606345) –