2016-10-30 23 views
0

すべてのエラーはまったく同じもので、理由を理解できないようです。どんな助言も役に立つでしょう。手続き型のC++を使用する必要があります。C++プロシージャで「値を参照していません」エラー

#include <stdio.h> 

typedef struct Elem { 
    float Element; 
}ELEM; 

typedef struct Vector { 
    unsigned int size = 0; 
    Elem *numbers[]; 
}VECTOR; 

// print_vec: 
// prints the vector array if it isn't NULL 
// in: 
// RefToVector - single dimensional array of Elem's 
// Out: 
// Returns true if the array isn't NULL and it has something to print, NULL if otherwise 
bool print_vec(Vector *numbers) { 
    if (numbers != NULL) { 
     printf("%f", numbers); 
     return true; 
    } 
    else { 
     return NULL; 
    } 
} 

// *alloc_vec 
// Allocates an empty vector array 
// In: 
// Nothing 
// Out: 
// A newly allocated vector array 

Vector *alloc_vec() { 
    Vector *numbers = new Vector; 
return numbers; 
} 

// dealloc_vec 
// deallocates array 
// In: 
// an allocated array 
// out: 
// Return: True if successfull, NULL if not 

void dealloc_vec(Vector *numbers) { 
    delete Vector *numbers; 
} 

// extend_vec 
// Extends the vector by one element in size 
// In: 
// Vector array of x elements 
// Out: 
// Vector array of x + 1 elements 
// Return: 
// A pointer to the new vector 

Vector *extend_vec(Vector *numbers, Elem) { 
    Vector *bigger = alloc_vec(); 
    bigger->size = numbers->size + 1; // set the size of the new vector to the size of the old plus one more element 
    for (int i = 0; i <= numbers->size; i++) { 
     bigger[i] = numbers[i]; // step through the vectors and copy the values 
    } 
    bigger[bigger->size-1] = Elem; // set last place in the new vector to the new element 
    return bigger; 
} 


// scalar_plus 
// Steps through the vector elements' and adds the same value to all of them 
// In: 
// Reference to a vector(array) 
// Out: 
// Return: reference to vector with Elem value added to each 

Vector *scalar_plus(Vector *numbers, Elem) { 
    for (unsigned int i = 0; i <= numbers->size; i++){ 
     numbers[i] = numbers[i] + Elem; 
    } 
    return numbers; 
} 

私のエラーはすべて同じです。そして、ここで彼らは

vecalc.cc:49:12: error: 'Vector' does not refer to a value 
    delete Vector *numbers; 
     ^
vecalc.cc:8:16: note: declared here 
typedef struct Vector { 
      ^
vecalc.cc:67:30: error: 'Elem' does not refer to a value 
    bigger[bigger->size-1] = Elem; // set last place in the new vector t... 
          ^
vecalc.cc:4:16: note: declared here 
typedef struct Elem { 
      ^
vecalc.cc:64:23: warning: comparison of integers of different signs: 'int' and 
    'unsigned int' [-Wsign-compare] 
    for (int i = 0; i <= numbers->size; i++) { 
        ~^~~~~~~~~~~~~~ 
vecalc.cc:81:35: error: 'Elem' does not refer to a value 
     numbers[i] = numbers[i] + Elem; 
           ^
vecalc.cc:4:16: note: declared here 
typedef struct Elem { 
       ^
vecalc.cc:98:4: error: 'Vector' does not refer to a value 
       *Vector = *alloc_vec(); 
       ^
vecalc.cc:8:16: note: declared here 
typedef struct Vector { 
      ^
vecalc.cc:99:11: error: 'Vector' does not refer to a value 
       assert(&Vector == NULL) 
         ^
vecalc.cc:8:16: note: declared here 
typedef struct Vector { 
      ^
vecalc.cc:103:14: error: 'Vector' does not refer to a value 
       print_vec(*Vector); 
         ^
vecalc.cc:8:16: note: declared here 
typedef struct Vector { 
      ^

あり、それらはすべて同じであるので、私は私は1つを修正する方法を見つけ出す場合、私はそれらをすべて取得すると思うよ。..

+0

変数を配置するはずの構造体名を使用しています。違いを知る必要があります。 – Barmar

+0

私は、この質問を最も基本的な研究でさえ示していないので、議論の対象外としている。 – IInspectable

+0

実際にはかなり良い質問です。私はこれが基本的なことであることに同意しますが、コードは明確に書かれており、明確にコメントさえしています。これよりも品質が低いすべての質問が閉じられた場合、1日に数十件の質問しか残らないでしょう。 – Rasty

答えて

0

compilorはあなたが、あなたを語っていますタイプの名前をの変数名にする必要があります。 例えば、最初のエラーの場合は、ただdelete numbers;でなければなりません。変数名がまっすぐに欠落していて、変数名のみまたは両方が必要な型だけがある場所もあります。

関連する問題