2016-11-03 4 views
-2

Я пытаюсь построить динамический массив (в соответствии с пользовательским вводом), используя функцию. Im давая небольшой пример того, что я думал, что делать:Динамический массив в c, используемый функцией

enter code here 

int main() 
{ 
int *array; 
int counter=0;) //countes how many inputs we got 

*array=dynamic_array(array,counter) 

return 0; 
} 

int *dynamic_array(int *array, int counter){ 

int c=0; 
while(c!=-1) 
{ 
counter++; 
array=(int *)realloc(arraya(counter)*sizeof(int)); 
} 

return(array); 
} 

И еще qustion, если я хочу использовать & контраргументы, которые я не могу сделать это на с, как я могу его заменить?

спасибо.

+1

отступа код пожалуйста. И в чем вопрос? И, пожалуйста, один вопрос за раз. –

+0

Что касается второго вопроса: что значит '& counter-'? Вы должны опубликовать отдельный вопрос и уточнить немного больше. –

+0

Ваш цикл 'while (c! = - 1)' никогда не будет завершен, так как 'c' не изменяется в цикле. Ваш код не будет компилироваться со всеми этими синтаксическими и другими ошибками. –

ответ

0

Ваш код действительно странный, поэтому трудно сказать, чего вы на самом деле хотите.

Вы, вероятно, хотите что-то вроде этого:

#include <stdlib.h> 
#include <stdio.h> 

// declare the dynamic_array function 
int *dynamic_array(int *array, int counter); 

int main() 
{ 
    int *array = NULL; // initialize to NULL (see realloc documentation) 

    // allocate an array of 10 ints 
    int counter = 10; 
    array = dynamic_array(array, counter); 
    array[0] = 12; 
    array[1] = 34; 

    // extend the array to 20 ints 
    counter = 20; 
    array = dynamic_array(array, counter); 

    printf("array[0] = %d\n", array[0]); 
    printf("array[1] = %d\n", array[1]); 

    return 0; 
} 


int *dynamic_array(int *array, int counter) 
{ 
    array = (int*)realloc(array, counter * sizeof(int)); 
    return(array); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^