2016-11-03 8 views
-2

関数で関数を使って動的配列を作成しようとしています。イムは、私がやって考えたものの小さな例を与える:関数で使用されている動的配列

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、私はCにそれを行うことはできません&カウンターを使用したい場合は、どのように私はそれを置き換えることができますか?

ありがとうございます。

+1

インデントあなたのコードをしてください。そして、何が問題なのですか?そして一度に一つの質問をしてください。 –

+0

あなたの2番目の質問について: '&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); 
} 
関連する問題